如何在 Java 中將檔案讀取為字串
Rupam Yadav
2023年1月30日
2020年10月15日
-
使用
Files.readString()
從 Java 11 中的檔案讀取字串 -
在 Java 8 中通過
Files.lines(file_path)
將檔案讀成字串 -
在 Java 7 中通過
Files.readAllLines()
從檔案中讀取字串 -
BufferedReader.readLine
從檔案中讀取字串
我們將介紹如何讀取一個檔案的內容,然後將其轉換為 Java 字串。
下面是 testFile.txt
檔案,其中包含了一些我們要讀成 Java 字串的內容。
A
B
C
D
1
2
3
使用 Files.readString()
從 Java 11 中的檔案讀取字串
Java 11 帶來了一個新的方法 Files.readString()
,它允許我們輕鬆地讀取檔案,而不需要寫很多程式碼。
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) {
Path path = Paths.get("/Projects/testFile.txt");
try {
String content = Files.readString(path);
System.out.println(content);
}catch (IOException e){
e.printStackTrace();
}
}
}
輸出:
A
B
C
D
1
2
3
在 Java 8 中通過 Files.lines(file_path)
將檔案讀成字串
Java 8 中引入了 Stream
API,它以各種方式處理給定的資料集。
作為 java.NIO
包的一部分,Files
類包含一個 lines()
方法,可以從文字檔案中產生 Stream<String>
或字串流。
讓我們嘗試使用 Stream API 將檔案內容轉換為 Java 字串。
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args){
try{
Path path = Paths.get("/Projects/testFile.txt");
Stream<String> lines = Files.lines(path);
String content = lines.collect(Collectors.joining(System.lineSeparator()));
System.out.println(content);
lines.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
輸出:
A
B
C
D
1
2
3
注意
使用後一定要記住關閉流。注意 lines.close()
。
這樣可以確保在內容列印後就關閉流。
在 Java 7 中通過 Files.readAllLines()
從檔案中讀取字串
讀取檔案並不是那麼容易,直到 Java 7,它為 java.nio
包帶來了新的方法。它是 Files.readAllLines()
方法,從檔案中返回一個字串列表。每個字串代表檔案的一行。
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class Main {
public static void main(String[] args) {
try {
Path path = Paths.get("/Projects/testFile.txt");
List<String> contentList = Files.readAllLines(path, StandardCharsets.UTF_8);
System.out.println(contentList);
}catch (IOException e){
e.printStackTrace();
}
}
}
輸出:
[A, B, C, D, 1, 2, 3]
BufferedReader.readLine
從檔案中讀取字串
我們也可以使用 BufferedReader
類來獲取檔案的內容,它可以從輸入流中讀取文字。
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Main {
public static void main(String[] args) throws IOException {
String path = "/Projects/testFile.txt";
try (BufferedReader br = new BufferedReader(new FileReader(path))) {
String line = br.readLine();
StringBuilder sb = new StringBuilder();
while (line != null) {
sb.append(line).append("\n");
line = br.readLine();
}
String fileAsString = sb.toString();
System.out.println(fileAsString);
}
}
}
輸出:
A
B
C
D
1
2
3
Author: Rupam Yadav
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn相關文章 - Java String
- 如何在 Java 中以十六進位制字串轉換位元組陣列
- 如何在 Java 中執行字串到字串陣列的轉換
- 如何將 Java 字串轉換為位元組
- 如何從 Java 中的字串中刪除子字串
- 用 Java 生成隨機字串
- Java 中的交換方法