要干什么用?
如果要从头写的话
要用StreamWriter
如果要读的话
你不是已经读出来了?
如果要从头写的话
要用StreamWriter
如果要读的话
你不是已经读出来了?
解决方案 »
- 跪求JAVASCRIPT高手帮助,为什么getElementById不能取得QQ空间"发表"按钮的ID?
- 通过设置时间段指定删除Access数据库某个表的数据(定时删除)和收缩Access数据库的功能?
- 如何获得本机的Computer SID
- 跨省添加记录,ADO与ADO.NET那一个速度更快
- 类成员-字段与属性的关系疑问?
- 更新数据库表中datetime字段
- 求一select * from table where name = select from table 的语句例子.
- 有必要 Stream.Flush ??
- 关于建立视图的问题
- 关于水晶报表数据源连接问题
- 请教:关于利用Jmail组件实现接收邮件
- 谁做过扫描啊,怎么做啊,急啊,我找组件也找到啊,什么组件啊
我要用这些数据来画图,
我先把数据读一遍,
得到最大值和最小值.
然后我想再读一次数据,
根据最大值,最小值,及界面上picturebox的大小,
算出具体每个点在界面上的实际位置.
我想,
得到最大最小值得遍历一次数据,
然后实际画图时还得遍历一次数据啊...
比如说,读到一个ArrayList里面(你的数据肯定是一行一个吧,或者用什么逗号格开)
然后把文件关闭
直接再ArrayList里面处理不就可以了吗?
第一种是(三列分别是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
你既然都打开了,一次读进来
然后要怎么处理就怎么处理不是很好吗?
你要一定要重新打开文件
就先Close掉reader
然后重新Open
至于你说的让指针回到开头
我不知道有什么办法
因为它也是一个类似于游标一样的咚咚
走了之后就回不去了
现在做的测试数据是几千个double类型的数据,
将来真正使用了可能数据还会多一点...
---小case,不用管:)
你可以自己测试测试
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);
}
}
}
}
}
但如果对文件内容的处理并不复杂(例如不需要排序等),且性能要求并非很高的话,重写打开文件再处理一次也是可以接收的。楼主可以测试一下,用filestream读取那个文件,中间不做任何处理(也别打印到屏幕上,),其实读取的时间应该不会很占时间的,你可以根据这个纯读取时间和程序总运行时间之比来判断是否需要把文件都读入内存。
所以最好还是比较一下再做决定吧。