本文概述
有以下几种逐行读取文件的方法。
- BufferedReader类
- 扫描仪类
使用BufferedReader类
使用Java BufferedRedaer类是在Java中逐行读取文件的最常见, 最简单的方法。它属于java.io包。 Java BufferedReader类提供readLine()方法来逐行读取文件。该方法的签名是:
public String readLine() throws IOException
该方法读取一行文本。它返回一个包含行内容的字符串。该行必须由换行符(“ \ n”)或回车符(“ \ r”)中的任何一个终止。
使用BufferedReader类逐行读取文件的示例
在下面的示例中, FileReader类读取Demo.txt。 BufferedReader类的readLine()方法逐行读取文件, 并将每行追加到StringBuffer后面, 然后换行。然后, 将StringBuffer的内容输出到控制台。
import java.io.*;
public class ReadLineByLineExample1
{
public static void main(String args[])
{
try
{
File file=new File("Demo.txt"); //creates a new file instance
FileReader fr=new FileReader(file); //reads the file
BufferedReader br=new BufferedReader(fr); //creates a buffering character input stream
StringBuffer sb=new StringBuffer(); //constructs a string buffer with no characters
String line;
while((line=br.readLine())!=null)
{
sb.append(line); //appends line to string buffer
sb.append("\n"); //line feed
}
fr.close(); //closes the stream and release the resources
System.out.println("Contents of File: ");
System.out.println(sb.toString()); //returns a string that textually represents the object
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
输出:
使用扫描仪类
与BufferedReader类相比, Java Scanner类提供了更多的实用程序方法。 Java Scanner类提供nextLine()方法, 以方便一行一行地显示文件内容。 nextLine()方法返回与readLine()方法相同的String。 Scanner类还可以读取InputStream形式的文件。
使用Scanner类逐行读取文件的示例
import java.io.*;
import java.util.Scanner;
public class ReadLineByLineExample2
{
public static void main(String args[])
{
try
{
//the file to be opened for reading
FileInputStream fis=new FileInputStream("Demo.txt");
Scanner sc=new Scanner(fis); //file to be scanned
//returns true if there is another line to read
while(sc.hasNextLine())
{
System.out.println(sc.nextLine()); //returns the line that was skipped
}
sc.close(); //closes the scanner
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
输出:
评论前必须登录!
注册