Как записать byteArray в файл?
Поэтому я пытаюсь реализовать метод, который вставляет byteArray в файл и устанавливает новый byteArray, содержащий вставленный byteArray, если это имеет какой-либо смысл. Ниже приведен мой код, однако я уверен, что что-то не так, поскольку мои тесты не проходят, любая помощь будет принята с благодарностью.
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();
}
1 ответ
Я рекомендую использовать APACHE-COMMON-IO, это хорошая библиотека для манипулирования файлами. В этой библиотеке есть много методов для записи, копирования, перемещения и т. Д. С файлами. Это просто в использовании.
У меня было много проблем, следуя этому пути, который вы сделали. Но в настоящее время мы просто используем эту библиотеку.
Хороший вид