Java逐行读取文件

时间:2020-02-23 14:36:47  来源:igfitidea点击:

今天,我们将逐行研究不同的Java读取文件。
有时我们必须逐行读取文件到String,例如通过将每一行作为String传递来处理来调用方法。

Java逐行读取文件

我们可以使用不同的方式逐行读取文件。
让我们来看一些。

Java使用BufferedReader逐行读取文件

我们可以使用java.io.BufferedReader readLine()方法逐行读取文件到String。
到达文件末尾时,此方法返回null。
下面是一个简单的程序,显示了使用BufferedReader逐行读取Java文件的示例。

package com.theitroad.readfileslinebyline;

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(
					"/Users/hyman/Downloads/myfile.txt"));
			String line = reader.readLine();
			while (line != null) {
				System.out.println(line);
				//read next line
				line = reader.readLine();
			}
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}

Java使用Scanner逐行读取文件

我们可以使用Scanner类打开文件,然后逐行读取其内容。
以下是扫描仪示例,用于逐行读取文件并进行打印。

package com.theitroad.readfileslinebyline;

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("/Users/hyman/Downloads/myfile.txt"));
			while (scanner.hasNextLine()) {
				System.out.println(scanner.nextLine());
			}
			scanner.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		}
	}

}

Java使用文件逐行读取文件

java.nio.file.Files是一个实用程序类,其中包含各种有用的方法。
文件readAllLines方法可用于将所有文件行读入字符串列表。

package com.theitroad.readfileslinebyline;

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("/Users/hyman/Downloads/myfile.txt"));
			for (String line : allLines) {
				System.out.println(line);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

Java使用RandomAccessFile逐行读取文件

我们可以使用" RandomAccessFile"以读取模式打开文件,然后使用其" readLine"方法逐行读取文件。

package com.theitroad.readfileslinebyline;

import java.io.IOException;
import java.io.RandomAccessFile;

public class ReadFileLineByLineUsingRandomAccessFile {

	public static void main(String[] args) {
		try {
			RandomAccessFile file = new RandomAccessFile("/Users/hyman/Downloads/myfile.txt", "r");
			String str;
			while ((str = file.readLine()) != null) {
				System.out.println(str);
			}
			file.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}