例如,我想转此列表:
狗猫 树木微风...
其中有一定数量的行,每行包含两个单词。
如何使用BufferedReader
执行此操作?问题是我不知道如何在没有for
循环的情况下继续解析x次。我如何使用for
循环?
以下是示例代码:
BufferedReader br = new BufferedReader(new FileReader("input.in"));
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("input.out")));
static int[] words
for (int i=1; i<2N; i+2) {
StringTokenizer i
words[i] = String.parsestring}
}
}
答案 0 :(得分:1)
如果您在使用BufferedReader
逐行浏览时遇到问题,可以使用Scanner
代替,并假设文件不是很大,将整个文件扫描成字符串,然后使用{ {3}}获取文件中所有单词的数组:
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class ArrayFromFile{
public static void main(String []args){
try (Scanner scanner = new Scanner(new File("data.txt"))) {
String text = scanner.useDelimiter("\\A").next(); //Get contents of file as String
String[] words = text.split(" ");
for(String word : words) //Printing out the elements in the array
System.out.println(word);
} catch (FileNotFoundException e){
e.printStackTrace();
}
}
}
答案 1 :(得分:0)
我不确定这是否是您所需要的,但在java 8中可以这样做: 假设我们有这样的文本文件:
cat dog
mouse zebra
goat bear
lizard carrot
car truck
bus bike
我们可以使用java 8流来获取所有内容并将其放入集合中:
Set<String> set_text = Files.lines(Paths.get("/data2/test/data.txt")).collect(Collectors.toSet());
然后我们将集解析为数组:
String[] arr = set_text.toArray(new String[set_text.size()]);
for(String text : arr)
{
System.out.println(text);
}
如果这不是你需要的,请让我知道编辑它:)