c#文本Txt相关操作
最近在学习操作文本。(目前看到的相关资料只有教你如何创建,写如一个字符,或是如何读取一个字符)1.想把一个二维数组的元素按行列写入文本2.如何按行按列读取上述文本的元素3...
最近在学习操作文本。(目前看到的相关资料只有教你如何创建,写如一个字符,或是如何读取一个字符)
1.想把一个二维数组的元素按行列写入文本
2.如何按行按列读取上述文本的元素
3.如何直接读取文本第十行的内容(而不需要读取其他行)
对上述几个问题有点茫然,求高手给点建议,谢谢喽^^ 展开
1.想把一个二维数组的元素按行列写入文本
2.如何按行按列读取上述文本的元素
3.如何直接读取文本第十行的内容(而不需要读取其他行)
对上述几个问题有点茫然,求高手给点建议,谢谢喽^^ 展开
展开全部
1,可以把二维数据中一行的数据拼成一个字符串,按一定的分隔符分隔组成一行,StreamWrite,BinaryWriter或其它将这一行写入到文件中。
2.按行可以读取,按列不行,其实你可以将文本一行一行的读出来,根据上面的分隔符把它反解到二维数组中。假如读到一个数据是以逗号分隔。
StreamReader sr=new StreamReade("文件名");
string s=sr.ReadLine();
string[] row=s.Split(",");//这是一行的数据
然后将这一行填充到二维数据中的一行了。
3.这是不行的,除非你知道你的一行有多大,然后StreamReader有个方法Read(char[] buffer,int index,int count);从那里开始读多少到buffer中。
其实你可以把你想要写入数据,定义成为一个可以序列化的类,序列化到文件,把文件反序列化成类,这都是很方便的事情,基本上不两三行代码就可以了。
2.按行可以读取,按列不行,其实你可以将文本一行一行的读出来,根据上面的分隔符把它反解到二维数组中。假如读到一个数据是以逗号分隔。
StreamReader sr=new StreamReade("文件名");
string s=sr.ReadLine();
string[] row=s.Split(",");//这是一行的数据
然后将这一行填充到二维数据中的一行了。
3.这是不行的,除非你知道你的一行有多大,然后StreamReader有个方法Read(char[] buffer,int index,int count);从那里开始读多少到buffer中。
其实你可以把你想要写入数据,定义成为一个可以序列化的类,序列化到文件,把文件反序列化成类,这都是很方便的事情,基本上不两三行代码就可以了。
追问
嗯,谢谢。按行按列写入数据搞定了,但现在反过来用二维数组读取数据就不行了。(data[i, j] = sr.ReadLine();只能把一行所有内容当作一个字符串读取。行数据是空格隔开)以前学Fortran的时候操作txt很方便,可以一个一个数据的读。除了你说的方法还有简单的吗?
追答
string[] arr= sr.ReadLine().split(" ");
data[i, j] =arr[j];
这样是一样的吧,前提是你要这一行有多少个,不然数据会越界的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询