『壹』 求java大神幫忙,我現在有一個文件夾下有多個json格式的txt文本,如何讀取所有txt文本內容。
對於一個包含多個.txt文件的文件夾,你可以使用遞歸方法來獲取所有.txt文件的路徑。下面是一個示例代碼片段,展示如何遍歷文件夾及其子文件夾,並讀取所有.txt文件的內容。
首先,你需要一個方法來遍歷文件夾及其子文件夾,該方法接收一個File對象作為參數,用於表示要遍歷的文件夾。這個方法會檢查當前文件夾下的每個文件或子文件夾。如果是文件夾,它會遞歸調用自身;如果是.txt文件,則會列印出文件路徑。具體實現如下:
java
public void test(File f) {
File[] files = f.listFiles();
for (File file : files) {
File file2 = new File(file.getPath());
if (file2.isDirectory()) {
this.test(file2);
} else if (file.getName().endsWith(".txt")) {
System.out.println(file.getPath());
}
}
}
在這個示例中,我們首先獲取當前文件夾下的所有文件和子文件夾。然後,我們遍歷這些文件和文件夾。如果當前項是一個文件夾,我們遞歸地調用`test`方法。如果當前項是一個.txt文件,我們列印出其路徑。
接下來,你需要使用`BufferedReader`來讀取每個.txt文件的內容。假設你已經獲得了所有.txt文件的路徑,你可以使用以下代碼片段來讀取每個文件的內容:
java
public void readFiles() {
File directory = new File("path/to/your/directory");
test(directory);
File[] files = directory.listFiles((dir, name) -> name.endsWith(".txt"));
if (files != null) {
for (File file : files) {
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
在這個示例中,我們首先調用`test`方法來獲取所有.txt文件的路徑。然後,我們使用`listFiles`方法來獲取所有.txt文件。接下來,我們遍歷這些文件,並使用`BufferedReader`來讀取每個文件的內容。
以上代碼示例展示了如何使用Java遞歸遍歷文件夾及其子文件夾,並讀取所有.txt文件的內容。你可以根據自己的需求進行適當的修改。