Files.readString() - Java 11
使用 Java 11 中引入的新方法 readString(),只需一行即可将文件内容读取到 String中。
在 Java 11 中将文件读取为字符串
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
public class WriteToFile
{
public static void main(String[] args) throws IOException
{
Path fileName = Path.of("demo.txt");
String content = "hello world !!";
Files.writeString(fileName, content);
String actual = Files.readString(fileName);
System.out.println(actual);
}
}
Files.lines() - Java 8
lines() 方法将文件中的所有行读入 Stream 。
当流被消耗时,流被延迟填充。
使用指定的字符集将文件中的字节解码为字符。
在 Java 8 中逐行读取文件
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Stream;
public class ReadFileToString
{
public static void main(String[] args)
{
String filePath = "c:/temp/data.txt";
System.out.println( readLineByLineJava8( filePath ) );
}
// 使用 Files.lines(Path path, Charset cs) 将文件内容读入字符串
private static String readLineByLineJava8(String filePath)
{
StringBuilder contentBuilder = new StringBuilder();
try (Stream<String> stream = Files.lines( Paths.get(filePath), StandardCharsets.UTF_8))
{
stream.forEach(s -> contentBuilder.append(s).append("\n"));
}
catch (IOException e)
{
e.printStackTrace();
}
return contentBuilder.toString();
}
}
BufferedReader - Java 6 及以下
如果我们仍未使用 Java 7 或者更高版本,请使用 BufferedReader 类。
它的 readLine()方法一次读取一行文件并返回内容。
Java 程序逐行读取文件
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileToString
{
public static void main(String[] args)
{
String filePath = "c:/temp/data.txt";
System.out.println( usingBufferedReader( filePath ) );
}
private static String usingBufferedReader(String filePath)
{
StringBuilder contentBuilder = new StringBuilder();
try (BufferedReader br = new BufferedReader(new FileReader(filePath)))
{
String sCurrentLine;
while ((sCurrentLine = br.readLine()) != null)
{
contentBuilder.append(sCurrentLine).append("\n");
}
}
catch (IOException e)
{
e.printStackTrace();
}
return contentBuilder.toString();
}
}
以下示例使用 Files.readAllBytes()、Files.lines()(逐行读取)以及 FileReader和 BufferedReader将文件读取到 String 。
欢迎来到之路教程(on itroad-com)
Files.readAllBytes() - 将整个文件读入字符串 - Java 7
readAllBytes() 方法从文件中读取所有字节。
此方法可确保在读取所有字节或者抛出 I/O 错误或者其他运行时异常时关闭文件。
读取所有字节后,我们将这些字节传递给 String类构造函数以创建一个新的 String。
Java 程序将整个文件读取为 String
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class ReadFileToString
{
public static void main(String[] args)
{
String filePath = "c:/temp/data.txt";
System.out.println( readAllBytesJava7( filePath ) );
}
//Read file content into string with - Files.readAllBytes(Path path)
private static String readAllBytesJava7(String filePath)
{
String content = "";
try
{
content = new String ( Files.readAllBytes( Paths.get(filePath) ) );
}
catch (IOException e)
{
e.printStackTrace();
}
return content;
}
}
日期:2020-09-17 00:09:24 来源:oir作者:oir
