我们将介绍如何读取一个文件的内容,然后将其转换为 Java 字符串。
下面是 testFile.txt
文件,其中包含了一些我们要读成 Java 字符串的内容。
使用 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();
}
}
}
输出:
在 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();
}
}
}
输出:
注意
使用后一定要记住关闭流。注意 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();
}
}
}
输出:
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);
}
}
}
输出:
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。