Java 使用bufferedreader读取包含多行的文本
我想知道如何使用BufferedStreamReader读取java中包含多行的文本文件。 每行有两个单词,用(;)分隔,我想使用Java 使用bufferedreader读取包含多行的文本,java,Java,我想知道如何使用BufferedStreamReader读取java中包含多行的文本文件。 每行有两个单词,用(;)分隔,我想使用split()String操作来分隔这两个单词。我还需要将每个单词与主数组列表中的一个单词进行比较。 我无法继续下去 这是我的密码: { FileInputStreamReader f = new FileInputStreamReader(C://Desktop/test.txt); InputStreamReader reader = new InputStr
split()
String操作来分隔这两个单词。我还需要将每个单词与主数组列表中的一个单词进行比较。
我无法继续下去
这是我的密码:
{
FileInputStreamReader f = new FileInputStreamReader(C://Desktop/test.txt);
InputStreamReader reader = new InputStreamReader(f);
BufferedReader Buff = new BufferedReader (reader);
String Line = buff.readLine();
String t[] = Line.split(;);
}
你需要一个while循环来阅读所有的行。 下面是一个例子试试看
while((line=buff.readLine())!=null){
System.out.println(line);
}
替换
String Line = Buff.readLine();
与
现在,您已经将整个文件读入StringBuffer
,您可以随心所欲
希望这有帮助。您可以使用BufferedReader循环指定文件中遇到的每一行。为了将单词按“;”分割,可以使用
.split
并将结果数组存储在列表中
最后,将所有列表合并为一个列表,该列表将包含文件中的所有单词
List<String> words = Arrays.asList(line.split(";"));
list.addAll(words);
上述陈述也可以反过来使用;以防该文件包含单词的主列表。或者,您可以将这两个列表存储在临时列表中,并根据需要以任何方式进行比较
以下是完整的代码:
public static void main(String[] args) {
String line;
// List of all the words read from the file
List<String> list = new ArrayList<String>();
// Your original mast list of words against which you want to compare
List<String> masterList = new ArrayList<String>(Arrays.asList("cleaner",
"code", "java", "read", "write", "market", "python", "snake",
"stack", "overflow"));
BufferedReader reader;
try {
reader = new BufferedReader(new FileReader("testing.txt"));
while ((line = reader.readLine()) != null) {
// Add all the words split by a ; to the list
List<String> words = Arrays.asList(line.split(";"));
list.addAll(words);
}
// Compare the 2 lists, assuming your file list has less number of
// records
masterList.removeAll(list);
System.out.println(masterList);
reader.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
上述代码的输出:
cleaner;code
java;read
write;market
python;snake
[stack, overflow]
cleaner;code
java;read
write;market
python;snake
[stack, overflow]