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