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); //讀取指定行的內容 
            }
       
        } 
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM