java txt读取指定行_java语言读取文本文件的指定行

/**    
* <B>创  建 人:</B>Administrator <BR>
* <B>创建时间:</B>2022年12月18日 上午6:28:49<BR>
* 
* @author ReYo
* @version 1.0
*/
import java.io.*;

public class reyo {

	/**
	
	*/

	public static void main(String[] args) {

		// 指定读取的行号

		int lineNumber = 2;

		// 读取文件

		//File sourceFile = new File("D:/java/test.txt");

		File sourceFile = new File("C://TEXT.txt");

		try {

			// 读取指定的行

			readAppointedLineNumber(sourceFile, lineNumber);

			// 获取文件的内容的总行数

			System.out.println(getTotalLines(sourceFile));

		} catch (IOException e) {

			// TODO Auto-generated catch block

			e.printStackTrace();

		}

	}

	// 读取文件指定行。

	static void readAppointedLineNumber(File sourceFile, int lineNumber)

			throws IOException {

		FileReader in = new FileReader(sourceFile);

		LineNumberReader reader = new LineNumberReader(in);

		String s = "";

		if (lineNumber <= 0 || lineNumber > getTotalLines(sourceFile)) {

			System.out.println("不在文件的行数范围(1至总行数)之内。");

			System.exit(0);

		}

		int lines = 0;

		while (s != null) {

			lines++;

			s = reader.readLine();

			if ((lines - lineNumber) == 0) {

				System.out.println(s);

				System.exit(0);

			}

		}

		reader.close();

		in.close();

	}

	// 文件内容的总行数。

	static int getTotalLines(File file) throws IOException {

		FileReader in = new FileReader(file);

		LineNumberReader reader = new LineNumberReader(in);

		String s = reader.readLine();

		int lines = 0;

		while (s != null) {

			lines++;

			s = reader.readLine();

			if (lines >= 2) {

				if (s != null) {

					System.out.println(s + "$");

				}

			}

		}

		reader.close();

		in.close();

		return lines;

	}

}

 

posted @ 2022-12-18 06:29  锐洋智能  阅读(488)  评论(0编辑  收藏  举报