我想将文本文件读入数组。我怎样才能做到这一点?
data = new String[lines.size]
我不想在数组中硬编码10。
BufferedReader bufferedReader = new BufferedReader(new FileReader(myfile));
String []data;
data = new String[10]; // <= how can I do that? data = new String[lines.size]
for (int i=0; i<lines.size(); i++) {
data[i] = abc.readLine();
System.out.println(data[i]);
}
abc.close();
答案 0 :(得分:10)
使用ArrayList或其他动态数据结构:
BufferedReader abc = new BufferedReader(new FileReader(myfile));
List<String> lines = new ArrayList<String>();
while((String line = abc.readLine()) != null) {
lines.add(line);
System.out.println(data);
}
abc.close();
// If you want to convert to a String[]
String[] data = lines.toArray(new String[]{});
答案 1 :(得分:3)
请改用List
。最后,如果您愿意,可以将其转换回String[]
。
BufferedReader abc = new BufferedReader(new FileReader(myfile));
List<String> data = new ArrayList<String>();
String s;
while((s=abc.readLine())!=null) {
data.add(s);
System.out.println(s);
}
abc.close();
答案 2 :(得分:2)
如果你不允许这样做dtechs方式,并使用ArrayList,请阅读2次:首先,获取声明数组的行数,第二次填充它。
答案 3 :(得分:1)
你可以这样做:
Dxyy
答案 4 :(得分:1)
File txt = new File("file.txt");
Scanner scan = new Scanner(txt);
ArrayList<String> data = new ArrayList<String>() ;
while(scan.hasNextLine()){
data.add(scan.nextLine());
}
System.out.println(data);
String[] simpleArray = data.toArray(new String[]{});