将文本文件读入数组

我想将一个文本文件读入一个数组。 我怎样才能做到这一点?

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(); 

使用ArrayList或其他动态数据结构:

 BufferedReader abc = new BufferedReader(new FileReader(myfile)); List lines = new ArrayList(); 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[]{}); 

请改用List 。 最后,如果需要,可以将其转换回String[]

 BufferedReader abc = new BufferedReader(new FileReader(myfile)); List data = new ArrayList(); String s; while((s=abc.readLine())!=null) { data.add(s); System.out.println(s); } abc.close(); 

如果你不允许这样做dtechs方式,并使用ArrayList,请阅读2次:首先,获取声明数组的行数,第二次填充它。

你可以这样做:

  BufferedReader reader = new BufferedReader(new FileReader("file.text")); int Counter = 1; String line; while ((line = reader.readLine()) != null) { //read the line Scanner scanner = new Scanner(line); //now split line using char you want and save it to array for (String token : line.split("@")) { //add element to array here System.out.println(token); } } reader.close(); 
 File txt = new File("file.txt"); Scanner scan = new Scanner(txt); ArrayList data = new ArrayList() ; while(scan.hasNextLine()){ data.add(scan.nextLine()); } System.out.println(data); String[] simpleArray = data.toArray(new String[]{});