要干什么用?
如果要从头写的话
要用StreamWriter
如果要读的话
你不是已经读出来了?

解决方案 »

  1.   

    是这样的:
    我要用这些数据来画图,
    我先把数据读一遍,
    得到最大值和最小值.
    然后我想再读一次数据,
    根据最大值,最小值,及界面上picturebox的大小,
    算出具体每个点在界面上的实际位置.
    我想,
    得到最大最小值得遍历一次数据,
    然后实际画图时还得遍历一次数据啊...
      

  2.   

    你可以将这些数据读到内存中来处理啊!
    比如说,读到一个ArrayList里面(你的数据肯定是一行一个吧,或者用什么逗号格开)
    然后把文件关闭
    直接再ArrayList里面处理不就可以了吗?
      

  3.   

    我的数据格式是两种:
    第一种是(三列分别是X,Y,Z值):
        0.000000E+00    0.000000E+00      181.970100
         2069.300000     -800.000000      389.045100
         9665.200000     -800.000000       16.982440
         9665.200000    -1000.000000       39.810720
    第二种是(一共九列,第一列是横坐标,其他的每一列代表一条曲线):
         -.55090    28.3    23.9      .0      .0    29.9   -30.6      .0  -999.9
         -.72700    34.8    27.2      .0      .0    33.6   -33.2      .0  -999.9
          .47710     8.3    32.7      .0      .0     8.3   -21.9      .0  -999.9
        -1.02800    44.5    34.7      .0      .0    38.3   -37.5      .0  -999.9
        -1.15300    48.2    39.1      .0      .0    39.5   -39.0      .0  -999.9
    对于第一种格式的数据,
    得求出X,Y,Z的最大值和最小值,
    对于第二种格式的数据,
    得求出第一列的最大值和最小值(横坐标),
    还得求出其他八列的最大值和最小值(八条曲线画在同一张图上).有什么好办法吗?
    /bow
      

  4.   

    重新打开一次文件没有必要啊
    你既然都打开了,一次读进来
    然后要怎么处理就怎么处理不是很好吗?
    你要一定要重新打开文件
    就先Close掉reader
    然后重新Open
    至于你说的让指针回到开头
    我不知道有什么办法
    因为它也是一个类似于游标一样的咚咚
    走了之后就回不去了
      

  5.   

    那是把这些数据放到数组里好呢,还是把文件重新打开读一次好啊?
    现在做的测试数据是几千个double类型的数据,
    将来真正使用了可能数据还会多一点...
      

  6.   

    几千个double类型的数据
    ---小case,不用管:)
    你可以自己测试测试
      

  7.   

    汗~ 楼上都在做什么啊,不是有现成的Seek吗?using System;
    using System.IO;public class fs
    {
      public static void Main(string [] args)
      {
        using(FileStream fsRead = new FileStream("fs.cs",FileMode.Open))
        {
          using(StreamReader sr = new StreamReader(fsRead))
          {
            string line = "";
            while((line = sr.ReadLine()) != null)
            {
              Console.WriteLine(line);
            }
            fsRead.Seek(0,SeekOrigin.Begin);
            while((line = sr.ReadLine()) != null)
            {
              Console.WriteLine(line);
            }
          }
        } 
      }
    }
      

  8.   

    如果文件的数据量不大,而且内存足够的话当然可以考虑把整个文件的内容读取到内存中处理。
    但如果对文件内容的处理并不复杂(例如不需要排序等),且性能要求并非很高的话,重写打开文件再处理一次也是可以接收的。楼主可以测试一下,用filestream读取那个文件,中间不做任何处理(也别打印到屏幕上,),其实读取的时间应该不会很占时间的,你可以根据这个纯读取时间和程序总运行时间之比来判断是否需要把文件都读入内存。
    所以最好还是比较一下再做决定吧。