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();
    }
}
在 Java 中如何将文本文件读入字符串

以下示例使用 Files.readAllBytes()Files.lines()(逐行读取)以及 FileReaderBufferedReader将文件读取到 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