簡體   English   中英

使用 DataOutputStream 寫入文件的 Java 不起作用

[英]Java writing into file with DataOutputStream not working

我的任務是使用 ByteStream 將一個文件中的數據寫入另一個文件。 我要做的是從文件a.txt 中讀取數據並寫入a2.txt。

讀取部分有效,但寫入部分無效。 我沒有收到錯誤,但 a2.txt 中沒有數據。

我在這里做錯了什么?

public static void main (String[] args) throws IOException
{
        String oldfile = "/Users/xy/Desktop/Java/a.txt";
        String newfile = "/Users/xy/Desktop/Java/a2.txt";

        inputoutput(oldfile,newfile);
}

public static void inputoutput(String alt, String neu) throws IOException{
    
    //InputStream
    FileInputStream fiStream = new FileInputStream(alt);
    DataInputStream diStream = new DataInputStream(fiStream);

    //Creating a Array in size of the File 
    byte[] daten = new byte [diStream.available()];
    // Save filesize
    int eingabeDatensize = diStream.available();
    diStream.read(daten);

    // Test if input works 
    for (int i = 0; i < eingabeDatensize; i++){
        System.out.println(daten[i]);
    }
    diStream.close();

    //OutputStream

    FileOutputStream foStream = new FileOutputStream(neu);
    DataOutputStream doStream = new DataOutputStream(foStream);
    
    //Creating a Array in size of the input file  
    byte[] ausgabedaten = new byte[eingabeDatensize];

    //Writing the data into the Array
    for (int i = 0; i < eingabeDatensize; i++){
        doStream.write(ausgabedaten[i]);
    }
    doStream.close();
    System.out.println("Successfull");
}

試試這個希望它會工作。

public static void inputoutput(String alt, String neu) throws IOException{


//InputStream
FileInputStream fiStream = new FileInputStream(new File(alt));
DataInputStream diStream = new DataInputStream(fiStream);

//Creating a Array in size of the File 
byte[] daten = new byte [diStream.available()];
// Save filesize
int eingabeDatensize = diStream.available();
diStream.read(daten);

// Test if input works 
for (int i = 0; i < eingabeDatensize; i++){
    System.out.println(daten[i]);
}
diStream.close();

//OutputStream

FileOutputStream foStream = new FileOutputStream(neu);
DataOutputStream doStream = new DataOutputStream(foStream);


//Writing the data into the Array
for (int i = 0; i < eingabeDatensize; i++){
    doStream.write(daten[i]);
}
doStream.close();
System.out.println("Successfull");
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM