我有幾個這種格式的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循環(不是讀取行的一堆位置,然後將行饋送到狀態機,該狀態機將以各種方式處理行,具體取決於它的狀態*。 –