簡體   English   中英

寫入排序的文本文件

[英]Writing to a sorted text file

我不確定在這里我做錯了什么。 它可以編譯並運行,並且可以正常運行,但是沒有將行寫入文本文件。 我有FileStream並在MSDN上閱讀以嘗試自己解決這個問題。 當我確實需要工作時,它會將我放入的文件覆蓋了整個文件。 所以,我希望,也許誰做這個了4個多月(比如我),程序員可以解釋。 這是我認為相關的一段代碼。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication33
{
class Program
{
    static void Main(string[] args)
    {
        FileStream FireBall = new FileStream("Students.txt", FileMode.Open, FileAccess.Read);
        StreamReader inFile = new StreamReader(FireBall);
        string inValue;
        string[] values;
        double GPA;
        double total = 0;
        double counter = 0;
        double count = 0;
        double counti = 0;
        double counterr = 0;
        List<string> Anderson = new List<string>(); //Anderson
        List<string> gpa = new List<string>(); //GPA
        List<string> noemail = new List<string>(); // email
        List<string> lines = new List<string>();


        string newLastName = "'Constant";
        string newRecord = "(LIST (LIST 'Constant 'Malachi 'D ) '1234567890 'mdconstant@mail.usi.edu 4.000000 )";
        string line;
        string lastName;
        bool insertionPointFound = false;

        for (int i = 0; i < lines.Count && !insertionPointFound; i++)
        {

            line = lines[i];
            if (line.StartsWith("(LIST (LIST "))
            {
                values = line.Split(" ".ToCharArray());
                lastName = values[2];
                if (newLastName.CompareTo(lastName) < 0)
                {
                    lines.Insert(i, newRecord);
                    insertionPointFound = true;
                }
            }
        }
        if (!insertionPointFound)
        {

            lines.Add(newRecord);
        } 

你在這里不寫任何東西。 請注意,您正在使用FileAccess.Read in

FileStream FireBall = new FileStream("Students.txt", FileMode.Open, FileAccess.Read);

應該將其替換為FileAccess.ReadWrite

您可以使用StreamWrite寫入文件。 而且,您可以使用File.ReadAllTextFile.WriteAllText輕松進行File.WriteAllText

我看不到任何寫入文件本身的代碼。 如果要將文件的內容讀到List lines ,則寫入該列表與寫入實際文件不同。

因此,您需要使用StreamWriter類的方法顯式寫入文件。 看到這里: http : //msdn.microsoft.com/en-us/library/6ka1wd3w.aspx

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM