本人刚用C#不久,有如下问题,盼高手赐教:
若有一数组 int ArrayA[10],
将 Array[10]写入一文本文件text1.txt,数组各元素之间用空格分开;
然后读取该文本文件的内容,将取出来的内容分解后存入另一数组int ArrayB[10]中。
最好有实例说明。
谢谢!

解决方案 »

  1.   

    自己用到的,寫得很垃圾,只是提供一個思路。
    讀取到RichTextBox中
    FileStream readFile=new FileStream(pp,FileMode.Open);//pp為路徑
    int abc=Convert.ToInt32(readFile.Length.ToString());
                      int def=abc/1024;
    int ghi=abc%1024;//
                      if(ghi!=0)
    {
                  def++;
    }
    for(int i=0;i<def;i++)
    {
    byte[] read=new byte[1024];
    readFile.Read(read,0,int.Parse("1024"));//
    string line1=Encoding.Default.GetString(read);// SingleRichTextBox.SelectedText=line1;
    }
    readFile.Close();
    return;
    寫入
    if (File.Exists(filePath))
    { File.Delete(filePath); }
    FileStream fsobj=new FileStream(filePath,System.IO.FileMode.Create,FileAccess.ReadWrite);   System.IO.StreamWriter sw=new StreamWriter(fsobj,System.Text.Encoding.Default);//&#63239; sw.Write(SingleRichTextBox.Text.ToString()); sw.Flush(); sw.Close(); fsobj.Close();
      

  2.   

    下面的代码示例读取整个文件,并在检测到文件尾时发出通知。
    [C#]
    using System;
    using System.IO;
    public class TextFromFile 
    {
        private const string FILE_NAME = "MyFile.txt";
        public static void Main(String[] args) 
        {
            if (!File.Exists(FILE_NAME)) 
            {
                Console.WriteLine("{0} does not exist.", FILE_NAME);
                return;
            }
            StreamReader sr = File.OpenText(FILE_NAME);
            String input;
            while ((input=sr.ReadLine())!=null) 
            {
                Console.WriteLine(input);
            }
            Console.WriteLine ("The end of the stream has been reached.");
            sr.Close();
        }
    }此代码通过调用 File.OpenText 创建一个指向 MyFile.txt 的 StreamReader。StreamReader.ReadLine 将每一行都返回为一个字符串。当没有要读取的字符时,一条消息显示该情况,然后流关闭。
      

  3.   

    下面的代码示例创建一个新文本文件并向其写入一个字符串。
    [C#]
    using System;
    using System.IO;
    public class TextToFile 
    {
        private const string FILE_NAME = "MyFile.txt";
        public static void Main(String[] args) 
        {
            if (File.Exists(FILE_NAME)) 
            {
                Console.WriteLine("{0} already exists.", FILE_NAME);
                return;
            }
            StreamWriter sr = File.CreateText(FILE_NAME);
            sr.WriteLine ("This is my file.");
            sr.WriteLine ("I can write ints {0} or floats {1}, and so on.", 
                1, 4.2);
            sr.Close();
        }
    }
    ===
    你在索引中键入IO,就可以找到一大堆的关于文件读写的帮助信息。
    要会学习。
      

  4.   

    谢谢 老汉 的教诲和提醒,
    但我现在只想解决实际问题,
    至于您提供的,仿佛在msdn上可以看到。我目前最想了解的是读出来的内容怎么还原、分解。
      

  5.   

    using System;
    using System.IO;
    using System.Text;namespace ConsoleApplication2
    {
    /// <summary>
    /// Summary description for Class1.
    /// </summary>
    class Class1
    {
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main(string[] args)
    {
    //
    // TODO: Add code to start application here
    //
    int[] array = new int[10];
    string filename = "D:\\x.txt";
    StreamWriter fout = File.CreateText(filename);

    for(int i=0;i<array.Length;i++)
    {
    array[i] = i+66;
    fout.Write(array[i].ToString() + " ");//加上空格符
    }
    fout.Close();
    StreamReader fin = new StreamReader(filename); int ch;
    StringBuilder sb = new StringBuilder();
    int[] target = new int[10];
                int num = 0;
    while( (ch = fin.Read()) != -1 && num != 10)
    {
                    char c = (char)ch; 
    if(c == ' ')
    {
    if(sb.Length != 0)
    {
                            target[num] = int.Parse(sb.ToString());
    num++;
    sb = new StringBuilder();
    }
    continue;
    } sb.Append(c);
    }
    fin.Close(); //打印出读取的数组
    for(int i=0;i<10;i++)
    {
    Console.WriteLine(target[i]);
    }
    }
    }
    }
    输出结果:
    66 67 68 69 70 71 72 73 74 75