读取文件数据写到数组的问题!!

问题描述

硬盘分区目录下有个*.text文件,里面写有数据为:123.11456.22789.336434.122123.11456.22789.336434.122123.11456.22789.336434.122123.11456.22789.336434.122123.11456.22789.336434.122123.11456.22789.336434.122请问如何从这个文件里读取这些数据,并把他们存入DOUBLE型数组中,数组中的行、列数要与文件中的行、列数一致,相应数字也一一对应。(要求能够统计行、列数,最终存放数据的数组是DOUBLE型)我写了一段代码,按空格拆分了,但老实现不了。我是新手,哪位兄弟可以写个完整的代码给我参考下吗?(悬赏100分)

解决方案

解决方案二:
你的代码?*****************************************************************************欢迎使用CSDN论坛专用阅读器:CSDNReader(附全部源代码)http://feiyun0112.cnblogs.com/
解决方案三:
StreamReaderreader=newStreamReader("C:\123.txt");stringline="";List<double>list=newList<double>();while((line=reader.ReadLine())!=null){string[]lines=line.Split(newchar[]{''});foreach(stringlinlines){if(!string.IsNullOrEmpty(l.Trim())){list.Add(Convert.ToDouble(l));}}}
解决方案四:
大约是这样要时按照你给的东东123.11456.22789.336434.122123.11456.22789.336434.122123.11456.22789.336434.122123.11456.22789.336434.122123.11456.22789.336434.122123.11456.22789.336434.122
解决方案五:
数组中的行、列数要与文件中的行、列数一致,-----》那你弄个2维数组吧代码大致如楼上只不过还得根据你的换行符在把每行Split下然后给数组赋值
解决方案六:
classProgram{staticvoidMain(string[]args){stringpath=@"d:hhk.txt";string[]lines=File.ReadAllLines(path);//ArrayListls=newArrayList();List<string[]>ls=newList<string[]>();char[]delimiterChars={''};foreach(stringlineinlines){string[]numbers=line.Split(delimiterChars);ls.Add(numbers);}foreach(string[]ssinls){foreach(stringsinss){if(s.Trim()!=""){Double.Parse(s);}Console.WriteLine(s+"");}Console.WriteLine();}}}}
解决方案七:
如果每行固定4个数据,可以用下列代码{string[]lines=System.IO.File.ReadAllLines("yourfile.txt");double[,]data=newdouble[lines.Length,4];for(inti=0;i<lines.Length;i++){string[]toks=lines[i].Split(newchar[]{'','t'},StringSplitOptions.RemoveEmptyEntries);System.Diagnostics.Debug.Assert(toks.Length==4);//确认每行有4个数据for(intj=0;j<4;j++){boolsucceeded=double.TryParse(toks[j],outdata[i,j]);System.Diagnostics.Debug.Assert(succeeded);//确认数据都是有效的}}}

解决方案八:
中间的是空格,还是tab制表符啊?写个思路,可以先按rn拆分strng,得到不同的行,然后在按空格拆分,得到列,写近数组就行了.stringls_text="";//*.text//得到行stringrows=ls_text.Split(newstring[]{"rn","n"},StringSplitOption.None/*(忘了具体怎么写了)*/);stringfirstRow=rows[0];introwCount=rows.Length;intcolumnCount=(firstRow.Split(newstring[]{"","t"},StringSplitOption.None)).Length;double[,]arry=newdouble[rowCount,columnCount];for(introwIndex=0;rowIndex<rowCount;rowIndex++){stringrow=rows[rowIndex];stringcolumns=row.Split(newstring[]{"","t"},StringSplitOption.None);for(intcolIndex=0;colIndex<columns.Length;colIndex++){arry[rowIndex,colIndex]=double.Prase(columns[colIndex]);}}
解决方案九:
引用2楼ericzhangbo1982111的回复:

StreamReaderreader=newStreamReader("C:\123.txt");stringline="";List<double>list=newList<double>();while((line=reader.ReadLine())!=null){string[]lines=line.Split(newchar[]{''});foreach(stringlinlines){if(!string.IsNullOrEmp…

正确!换成这样的也行:StreamReaderreader=newStreamReader("C:\123.txt");stringline="";List<double>list=newList<double>();while(reader.Peek()!=-1){line=reader.ReadLine();string[]lines=line.Split(newchar[]{''});foreach(stringlinlines){if(!string.IsNullOrEmpty(l.Trim())){list.Add(Convert.ToDouble(l));}}}reader.Close()////记得最后须关闭文件!
解决方案十:
哦,应该是二维数组,参考6楼的做法
解决方案十一:
顶一下
解决方案十二:
StreamReaderreader=newStreamReader("C:\123.txt");stringline="";List<double>list=newList<double>();while((line=reader.ReadLine())!=null){string[]lines=line.Split(newchar[]{''});foreach(stringlinlines){if(!string.IsNullOrEmpty(l.Trim())){list.Add(Convert.ToDouble(l));}}}或者StreamReaderreader=newStreamReader("C:\123.txt");stringline="";List<double>list=newList<double>();while(reader.Peek()!=-1){line=reader.ReadLine();string[]lines=line.Split(newchar[]{''});foreach(stringlinlines){if(!string.IsNullOrEmpty(l.Trim())){list.Add(Convert.ToDouble(l));}}}reader.Close()orstringpath=@"d:hhk.txt";string[]lines=File.ReadAllLines(path);//ArrayListls=newArrayList();List<string[]>ls=newList<string[]>();char[]delimiterChars={''};foreach(stringlineinlines){string[]numbers=line.Split(delimiterChars);ls.Add(numbers);}foreach(string[]ssinls){foreach(stringsinss){if(s.Trim()!=""){Double.Parse(s);}Console.WriteLine(s+"");}Console.WriteLine();}
解决方案十三:
文件最好用XML形式存,可以导成DATASET的

时间: 2024-08-02 00:46:35

读取文件数据写到数组的问题!!的相关文章

显示-vb.net如何读取文件,把文件数据保存成数组?

问题描述 vb.net如何读取文件,把文件数据保存成数组? Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Me.ListBox1.Items.Clear() Dim StrRed As StreamReader = New StreamReader("C:JD.JD", System.Text.Encoding.Default) While Not StrRed.End

php读取csv数据保存到数组的方法

 这篇文章主要介绍了php读取csv数据保存到数组的方法,通过封装的类文件实现这一功能,是对csv文件操作的实用技巧,需要的朋友可以参考下     本文实例讲述了php读取csv数据保存到数组的方法.分享给大家供大家参考.具体分析如下: csv是常用的excel格式的替代品,很多时候我们导出数据是都会导成csv格式的,这样和excel没什么区别,下面的程序是要读取csv数据保存到数组我们要对数据进行操作,所以保存到数据,代码如下: 代码如下: $info=csvtoarray::open('te

解决-从linux服务器中读取文件数据

问题描述 从linux服务器中读取文件数据 现有一个需求: 在一台服务器上写日志文件,每当日志文件写到一定大小时,比如是1G,会将这个日志文件改名成另一个名字,并新建一个与原文件名相同的日志文件,再往这个新建的日志文件里写数据:要求写一个程序能实时地读取日志文件中的内容,并且不能写日志操作.重命名操作.不能修改日志文件的任何数据,保持日志文件的完整性. 首先,这个问题在windows下几乎无解,因为一个程序打开了一个文件,再要对文件重命名是不可能的:而在Linux下,可以得到完美解决.因为Lin

php读取csv数据保存到数组的方法_php技巧

本文实例讲述了php读取csv数据保存到数组的方法.分享给大家供大家参考.具体分析如下: csv是常用的excel格式的替代品,很多时候我们导出数据是都会导成csv格式的,这样和excel没什么区别,下面的程序是要读取csv数据保存到数组我们要对数据进行操作,所以保存到数据,代码如下: 复制代码 代码如下: $info=csvtoarray::open('teste.csv'); //echo '<pre>'; //print_r($info); //echo '</pre>';

php读取csv数据保存到数组代码

php教程读取csv数据保存到数组代码 csv是常用的excel格式的替代品哦,很多时候我们导出数据是都会导成csv格式的,这样和excel没什么区别,下面的程序是要读取csv数据保存到数组我们要对数据进行操作,所以保存到数据. $info=csvtoarray::open('teste.csv'); //echo '<pre>'; //print_r($info); //echo '</pre>'; foreach ($info as $c)  {   echo '学号:'.$c

ASP教程:读取文件和写文件

ASP教程:读取文件和写文件 读取文件操作: '------------------------------------------------- '函数名称:ReadTextFile '作用:利用AdoDb.Stream对象来读取UTF-8格式的文本文件 '---------------------------------------------------- Function ReadFromTextFile (FileUrl,CharSet)     dim str     set stm

java库 读取文件内容并转换为数组

问题描述 java库读取文件内容并转换为数组 解决方案 解决方案二:基本问题就慢慢一步步来,先读文件,再去想如何转为数组.解决方案三:自己实现或者调用com.google.common.io.Filesapache的工具类.

从linux服务器中读取文件数据

问题描述 现有一个需求:在一台服务器上写日志文件,每当日志文件写到一定大小时,比如是1G,会将这个日志文件改名成另一个名字,并新建一个与原文件名相同的日志文件,再往这个新建的日志文件里写数据:要求写一个程序能实时地读取日志文件中的内容,并且不能写日志操作.重命名操作.不能修改日志文件的任何数据,保持日志文件的完整性.首先,这个问题在windows下几乎无解,因为一个程序打开了一个文件,再要对文件重命名是不可能的:而在Linux下,可以得到完美解决.因为Linux的文件系统有别于windows,L

HDFS读文件过程分析:读取文件的Block数据

我们可以从java.io.InputStream类中看到,抽象出一个read方法,用来读取已经打开的InputStream实例中的字节,每次调用read方法,会读取一个字节数据,该方法抽象定义,如下所示: public abstract int read() throws IOException; Hadoop的DFSClient.DFSInputStream类实现了该抽象逻辑,如果我们清楚了如何从HDFS中读取一个文件的一个block的一个字节的原理,更加抽象的顶层只需要迭代即可获取到该文件的