1. Lê Bá Tùng

    Lê Bá Tùng New Member

    Các Huynh cho hỏi chút về Java Io
    Đề : Viết chương trình, có tên là “tail”, chương trình sẽ nhận đối số input trên dòng lệnh là 1 tên file (text file), và in ra màn hình 10 dòng cuối cùng của file đó. Cho giả thiết là mỗi dòng trong file input không quá 256 kí tự.

    Không hiểu sao e làm thì n chỉ in ra 10 dòng cuối nhưng ở dạng null chứ k phải là dữ lieu của 10 dòng đó, mong các ae giúp

    /*
    * To change this license header, choose License Headers in Project Properties.
    * To change this template file, choose Tools | Templates
    * and open the template in the editor.
    */
    package net.elcom.cau1;
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.Writer;
    /**
    *
    * @author LaLaLa
    */
    public class tail {
    public static void main(String[] args) throws IOException {
    // nhập dữ liệu vào file theo dạng Line
    File file = new File("text.txt");
    BufferedWriter fw = new BufferedWriter(new FileWriter(file));
    String str1 = "Line 1";
    String str2 ="Line 2";
    String str3 = "Line 3";
    String str4 = "Line 4";
    String str5 = "Line 5";
    String str6 = "Line 6";
    String str7 = "Line 7";
    String str8 = "Line 8";
    String str9 = "Line 9";
    String str10 = "Line 10";
    String str11 = "Line 11";
    String str12 = "Line 12";
    fw.write (str1);
    fw.newLine ();
    fw.write (str2);
    fw.newLine ();
    fw.write (str3);
    fw.newLine ();
    fw.write (str4);
    fw.newLine ();
    fw.write (str5);
    fw.newLine ();
    fw.write (str6);
    fw.newLine ();
    fw.write (str7);
    fw.newLine ();
    fw.write (str8);
    fw.newLine ();
    fw.write (str9);
    fw.newLine ();
    fw.write (str10);
    fw.newLine ();
    fw.write (str11);
    fw.newLine ();
    fw.write (str12);
    fw.close ();
    // Đọc tất cả các dòng trong file và tính tổng số dòng có trong file
    BufferedReader fr = new BufferedReader(new FileReader("text.txt"));
    int sumline = 0;
    String line = fr.readLine();
    System.out.println("Show toàn dữ liệu file");
    while (line != null) {
    System.out.println(line);
    line = fr.readLine();
    sumline++;
    }
    System.out.println("Tổng số dòng có trong file text là: " + sumline);
    fr.close();
    // In ra 10 dòng cuối trong file
    System.out.println("10 dòng cuối trong file là: ");
    for (int i=(sumline-9);i<=sumline;i++){
    System.out.println(line);
    }
    }
    }
  2. JackV

    JackV Administrator Staff Member

    Vì vòng lặp while (line != null) dừng lại khi line = null nên sau vòng lặp while bạn in ra giá trị line sẽ là null.
    Lê Bá Tùng likes this.
  3. Lê Bá Tùng

    Lê Bá Tùng New Member

    ok. thanks a. e làm đươc bài này r

Chia sẻ trang này