有时需要逐行读取文件为字符串。例如,通过将文件每一行读取为String
对象来调用方法。
可以使用不同的方式逐行读取文件,下面我们来学习常见的几种方法。
方法1: 使用BufferedReader逐行读取文件
可以使用java.io.BufferedReader
类中的readLine()
方法逐行读取文件到String
。到达文件末尾时,此方法返回null
。下面是一个简单的程序,显示了如何使用BufferedReader
逐行读取文件内容的示例程序。
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;public class ReadFileLineByLineUsingBufferedReader {public static void main(String[] args) {BufferedReader reader;try {reader = new BufferedReader(new FileReader("D:/users/maxsu/myfile.txt"));String line = reader.readLine();while (line != null) {System.out.println(line);// read next lineline = reader.readLine();}reader.close();} catch (IOException e) {e.printStackTrace();}}
}
方法2: 使用Scanner逐行读取文件
可以使用Scanner
类打开文件,然后逐行读取其内容。下面是逐行读取文件的Scanner
类程序示例。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;public class ReadFileLineByLineUsingScanner {public static void main(String[] args) {try {Scanner scanner = new Scanner(new File("D:/users/maxsu/myfile.txt"));while (scanner.hasNextLine()) {System.out.println(scanner.nextLine());}scanner.close();} catch (FileNotFoundException e) {e.printStackTrace();}}}
方法3: 使用Files
逐行读取文件java.nio.file.Files
是一个包含各种有用方法的实用程序类。Fiels
类的readAllLines()
方法可用于将所有文件行读入字符串。
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;public class ReadFileLineByLineUsingFiles {public static void main(String[] args) {try {List<String> allLines = Files.readAllLines(Paths.get("D:/users/maxsu/myfile.txt"));for (String line : allLines) {System.out.println(line);}} catch (IOException e) {e.printStackTrace();}}}
方法4: 使用RandomAccessFile逐行读取文件
可以使用RandomAccessFile
以读取模式打开文件,然后使用它的readLine()
方法逐行读取文件。
import java.io.IOException;
import java.io.RandomAccessFile;public class ReadFileLineByLineUsingRandomAccessFile {public static void main(String[] args) {try {RandomAccessFile file = new RandomAccessFile("D:/users/maxsu/myfile.txt", "r");String str;while ((str = file.readLine()) != null) {System.out.println(str);}file.close();} catch (IOException e) {e.printStackTrace();}}}
本文链接:https://my.lmcjl.com/post/14613.html
展开阅读全文
4 评论