简体   繁体   English

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

[英]Java writing into file with DataOutputStream not working

I have a task to write the data in one file into another using the ByteStream.我的任务是使用 ByteStream 将一个文件中的数据写入另一个文件。 What I'm trying to do is to read data in from file a.txt and write into a2.txt.我要做的是从文件a.txt 中读取数据并写入a2.txt。

The read part works, but the write part does not work.读取部分有效,但写入部分无效。 I'm not getting an error, but there is no data in the a2.txt.我没有收到错误,但 a2.txt 中没有数据。

What am I doing wrong here?我在这里做错了什么?

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");
}

Try this hope it will work.试试这个希望它会工作。

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