2016-03-18 16 views
1

Also ich versuche, eine Methode zu implementieren, die ein ByteArray in eine Datei einfügt und ein neues ByteArray mit dem ByteArray, das eingefügt wurde, wenn das Sinn macht. Das Folgende ist mein Code, aber ich bin mir ziemlich sicher, dass etwas nicht stimmt, da meine Tests fehlschlagen, würde jede Hilfe geschätzt werden.Wie schreibe ich ein ByteArray in eine Datei?

public void writeBlock(int blockNum, AbstractDBFile f, AbstractBlock b) 
      throws IOException { 

    f.setCurBlockPos(blockNum); 
    byte[] writeData = new byte[4096]; 
    int currentByte = f.getCurBlockPos() * 4096; 
    File ourFile = new File(f.getFileName()); 
// Block block = new Block(); 
    Path path = Paths.get(f.getFileName()); 
    Files.write(path, writeData, StandardOpenOption.WRITE); //Data is Written 

    RandomAccessFile file = new RandomAccessFile(ourFile, "rw"); 
    FileChannel inChannel = file.getChannel(); 
    ByteBuffer bb = ByteBuffer.allocate(currentByte); 
    inChannel.write(bb); 
    while(inChannel.read(bb)>0){ 
    bb.flip(); 
    for (int i =0; i<bb.limit(); i++){ 
     writeData[i]=bb.get(); 
     b.setData(writeData); 
    } 
    bb.clear(); 
} 
    inChannel.close(); 
    file.close(); 


} 

Antwort

0

Ich empfehle, den APACHE-COMMON-IO zu verwenden, es ist eine gute lib, Manipulation in Dateien zu tun. Diese lib gibt es eine Vielzahl von Methoden zum Schreiben, Kopieren, Verschieben usw. mit Dateien. Es ist einfach zu bedienen.

Ich hatte eine Menge Probleme auf diese Weise, die Sie gemacht haben. Aber heutzutage benutzen wir einfach diese Bibliothek.

Gut loock

Verwandte Themen