1. 程式人生 > 實用技巧 >Java 讀取檔案指定行數的資料

Java 讀取檔案指定行數的資料

方法:建立兩個非public類,一個輸出本行內容及字元數,另一個確定檔案內容的總行數。
程式碼如下:

import java.io.*;
import java.util.Scanner;
public class ReadFile2 
{      
        //輸出本行內容及字元數
        static void readLineVarFile(String fileName, int lineNumber) throws IOException 
        { 
                BufferedReader reader = new BufferedReader(new
InputStreamReader(new FileInputStream(fileName))); //使用緩衝區的方法將資料讀入到緩衝區中 String line = reader.readLine(); //定義行數 if (lineNumber <= 0 || lineNumber > getTotalLines(fileName)) //確定輸入的行數是否有內容 { System.out.println("不在檔案的行數範圍之內。"); }
int num = 0; while (line != null) //當行數不為空時,輸出該行內容及字元數 { if (lineNumber == ++num) { System.out.println("第" + lineNumber + "行: " + line+" 字元數為:"+line.length()); } line
= reader.readLine(); } reader.close(); } // 檔案內容的總行數 static int getTotalLines(String fileName) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(fileName))); //使用緩衝區的方法將資料讀入到緩衝區中 LineNumberReader reader = new LineNumberReader(br); String s = reader.readLine(); //定義行數 int lines = 0; while (s != null) //確定行數 { lines++; s = reader.readLine(); } reader.close(); br.close(); return lines; //返回行數 } public static void main(String[] args) throws IOException { String fileName = "D:/test.txt"; // 讀取檔案 int totalNo = getTotalLines(fileName); // 獲取檔案的內容的總行數 System.out.println("本文總共有:"+totalNo+ "行"); while(true) { Scanner sc=new Scanner(System.in); int lineNumber =sc.nextInt(); // 指定讀取的行號 readLineVarFile("D:/test.txt", lineNumber); //讀取指定行的內容 } } }