我有几个这种格式的txt文件,我需要阅读它们并收集信息。Java如何使用BufferedReader以这种格式读取txt文件
我只是想读“文件”部分,它可以通过“文件”保存为一个字符串,及其所有子内容另一串。
(例如,在FILE1.TXT :)
String file = "file";
我想写一个for循环读取所有的子内容,并保存到另一个字符串如:
for (int i = 0; i < numberOfSubcontentLines; i++){
sub = sub + br.readLine() + ", ";
}
对我来说困难是不同的txt文件有不同的子内容行,我不知道如何阅读这些行,以便该方法可以在两种情况下工作。
目前代码我想:
public void readFile(String fileLocation) throws IOException {
fileMap = new HashMap<>();
FileReader reader = new FileReader(fileLocation);
BufferedReader br = new BufferedReader(reader);
String line;
String file;
// Assign a temp value to save the sub-content
String temp = "";
while ((line=br.readLine()) != null) {
if(line.contains("file")){
file = "file";
// Skip the next line
br.readLine();
// save all the sub-contents
do {
temp = temp + br.readLine() + ", ";
} while(br.readLine().contains("****"));
}
}
fileMap.put(file, temp);
System.out.println(fileMap);
}
它没有得到我想要的东西。任何建议或想法? Tkx在先进。
大概,你正在写一个方法。该方法的输入是什么? (我猜的是文件名,但另一部分可能是文件的“部分”名称,在你的例子中,这可能是“文件”,但如果你想读取它也可能是“苹果” “苹果”部分)。什么是期望的输出?关于文件格式可以假定什么? –
最适合您首先尝试自己编写此代码,尝试使用代码并尝试使用工作程序。如果失败了,那么你可以问一个更具体的问题,向我们展示这个代码尝试(一个完整的小型可编译和可运行程序)。如果没有这种尝试,你的问题就会转化为对代码的请求,这是不允许的。我敢肯定,考虑到你的知识和技能,你可以通过一次体面的尝试来解决这个问题,也可以非常接近解决方案(还有很多写在纸上的代码流的逻辑)。 –
你正在太多不同的地方阅读,并且无法正确处理事情。相反,您需要创建一个状态机 - 一个用于读取行的while循环(不是读取行的一堆位置,然后将行馈送到状态机,该状态机将以各种方式处理行,具体取决于它的状态*。 –