https://onitroad.com 更多教程

3. 使用 FileUtils 读取文件

Apache Commons IO 库通过为 Java 中几乎所有与 IO 相关的作业提供简短且易于使用的方法,做得非常出色。
FileUtils 类是用于一般文件读取和操作的实用程序类。

示例 2:使用 Apache Commons IO 读取文件

public void readFileWithApacheCommons (String fileName) 
{
    try 
    {
    	File file = new File( fileName );
    	List lines = FileUtils.readLines(file, "UTF-8");
    	for (String line : lines) {
			System.out.println( line );
		}
    } 
    catch (IOException ex) {
    	ex.printStackTrace();
    }
}

2. 使用 Java NIO Files 读取文件

Files类是 Java NIO API 的一部分,使代码易于阅读。
此类仅包含对文件、目录或者其他类型文件进行操作的静态方法。

示例2:用Java NIO逐行读取文件

public void readFileWithNIO (String fileName) 
{
	Path path = Paths.get( fileName );

    try ( Stream<String> lines = Files.lines(path) )
    {
        lines.forEach(s -> System.out.println(s));
    } 
    catch (IOException ex) {
    	ex.printStackTrace();
    }
}

请注意 使用的是lines.forEachOrdered()
如果我们使用 lines.forEach(),那么由于 API 的异步性质,我们可能无法按正确的顺序获取行。

用 Java 读取文件

在 Java 中,可以通过多种不同方式读取文件。

4.用Guava读取文件

Guava 具有与 Apache Commons IO 类似的方法。
只有类名不同,使用 Files 代替 FileUtils

public void readFileWithGuava (String fileName) 
{
    try 
    {
    	File file = new File( fileName );
    	List lines = Files.readLines(file, "UTF-8");
    	for (String line : lines) {
			System.out.println( line );
		}
    } 
    catch (IOException ex) {
    	ex.printStackTrace();
    }
}

1. 使用 BufferedReader 读取文件

BufferedReader 长期使用的最简单、常用、高效的方法。

它从字符输入流中读取文本,缓冲字符以提供对字符、数组和行的有效读取。

示例 1:使用 BufferedReader 逐行读取文件

public void readFile(String fileName) 
{
	try (BufferedReader br = new BufferedReader(new FileReader("C:\testing.txt")))
	{
		String sCurrentLine;
		while ((sCurrentLine = br.readLine()) != null) 
		{
			System.out.println(sCurrentLine);
		}
	} 
	//Stream is closed automatically
	catch (IOException e) 
	{
		e.printStackTrace();
	} 	
}
日期:2020-09-17 00:09:43 来源:oir作者:oir