我想读取一个文本文件,将其拆分,并将结果存储在一个数组中

时间:2011-04-07 05:26:58

标签: java

我有一个文本文件,其中有10个字段(列),每个字段由一个制表符分隔。我有几个这样的行。我希望读取文本文件,为每个列拆分,使用“制表符”分隔符然后将它存储在10列和无限行的数组中。可以完成吗?

3 个答案:

答案 0 :(得分:3)

数组不能包含“无限行” - 您必须指定构造中的元素数。您可能希望使用某些描述的List,例如ArrayList

至于阅读和解析,我建议使用Guava,特别是:

(这样您就可以随意分割线条了......或者您可以使用Files.readLines获取List<String>,然后再使用Splitter分别处理该列表。)

答案 1 :(得分:1)

BufferedReader buf = new BufferedReader(new FileReader(fileName));
String line = null;
List<String[]> rows = new ArrayList<String[]>();
while((line=buf.readLine())!=null) {
   String[] row = line.split("\t");
   rows.add(row);
}
System.out.println(rows.toString()); // rows is a List

// use rows.toArray(...) to convert to array if necessary

答案 2 :(得分:0)

这是一种加载.txt文件并将其存储到数组中以获得一定数量行的简单方法。

import java.io.*;


public class TestPrograms {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) {
    String conent = new String("da");
    String[] daf = new String[5];//the intiger is the number of lines +1 to
// account for the empty line.
    try{
    String fileName = "Filepath you have to the file";
File file2 = new File(fileName);
    FileInputStream fstream = new FileInputStream(file2);
    BufferedReader br = new BufferedReader(new InputStreamReader(fstream));
    int i = 1;
      while((conent = br.readLine()) != null) {

        daf[i] = conent;
        i++;
    }br.close();
      System.out.println(daf[1]);
      System.out.println(daf[2]);
      System.out.println(daf[3]);
      System.out.println(daf[4]);
    }catch(IOException ioe){
        System.out.print(ioe);
    }

}
}