30/09/2018, 19:07

Lỗi viết dữ liệu kiểu nhị phân vào file trong java

em viết một đoạn code nhập dữ liệu và ghi vào file theo kiểu nhị phân. nhưng chạy đến phần viết file thì báo lỗi. mà em chưa biết lỗi gì? mấy bác xem hộ em cái!

import java.io.DataOutputStream;
import java.io.IOException;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;

/**
 *
 * @author Minh Ngoc
 */
class sinhvien{
    public String ten;
    public int namsinh;
    public float diemTB;
}
public class DataIn_OutStream {

    public static void main(String[] args) throws IOException {
       // String a;
        sinhvien sv= new sinhvien();
        Scanner nhapTT =new   Scanner(System.in);
        System.out.println("
 Nhap vao ten sinh vien:");
        sv.ten = nhapTT.nextLine();
        System.out.println("
 Nhap vao nma sinh:");
        sv.namsinh= nhapTT.nextInt();
        System.out.println("
 Nhap vao diem TB:");
        sv.diemTB= nhapTT.nextFloat();
        DataOutputStream dataOut;
        DataInputStream dataIn;
        try{
            dataOut = new DataOutputStream(new FileOutputStream("E:\SV.dat"));
            
        }
        catch(IOException error){
            System.out.println("
 Write Error!!!");
        }
      
        try{
            System.out.println("
 Writing name to File.");
            dataOut.writeUTF(sv.ten);
            System.out.println("
 Writing year to File.");
            dataOut.writeInt(sv.namsinh);
           
            System.out.println("
 Writing diemTB to file.");
            dataOut.writeFloat(sv.diemTB);
            System.out.println("
 Write file succesful!!!");
            
        }
        catch(IOException error){
            System.out.println("
 Write file error:"+ error);
            return;
        }
          dataOut.close();
        try{
            dataIn = new DataInputStream(new FileInputStream("E:\sv.dat"));
            
        }
        catch(IOException error){
            System.out.println("
 Read file error!");
            return;
        }
        try{
            sv.ten = dataIn.readUTF();
            System.out.println(" 
 ten sinh vien la:"+ sv.ten);
            sv.namsinh= dataIn.readInt();
            System.out.println("
 Nam sinh vien la:" +sv.namsinh);
            sv.diemTB = dataIn.readFloat();
            System.out.println("
 Diem trung binh cua sinh vien la:" + sv.diemTB);
            System.out.println("
 Read File Succesful!");
        }
        catch(IOException error){
            System.out.println("
 read file error!");
            return;
        }
        dataIn.close();
        
    }
}```
<img src="https://daynhauhoc.com//daynhauhoc.s3-ap-southeast-1.amazonaws.com/original/2X/b/bda20b0b907b5368dd5f5f8e3ce5a82ef637dd19.png" width="690" height="431">
LazyCat viết 21:21 ngày 30/09/2018

Bạn gán tham chiếu 2 stream ở chỗ khai báo DataOutputStream dataOutDataInputStreamIn dataIn thành null hết nhá
P.s: theo mình bạn nên gộp 2 khối try kìa thành 1 cái thôi

Leng Keng viết 21:11 ngày 30/09/2018

thank bạn nhá! mình chăm quá ý mà!

Con Gà Con viết 21:13 ngày 30/09/2018

Cái này lỗi nó ghi rõ thế mà ? Bạn tập đọc lỗi đi. Cứ vậy thì chả tiến bộ đâu.
P/s: góp ý của mình không phải bạn bỏ qua cho mình

Leng Keng viết 21:11 ngày 30/09/2018

mình có dịch báo lỗi nhưng không biết là chọt vào đâu.:), vì chưa dính lỗi này bao giờ.

Bài liên quan
0