Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将字节数组写入文件?_Java_File_Bytearray_Randomaccessfile - Fatal编程技术网

Java 如何将字节数组写入文件?

Java 如何将字节数组写入文件?,java,file,bytearray,randomaccessfile,Java,File,Bytearray,Randomaccessfile,因此,我试图实现一种方法,将byteArray插入到文件中,并设置一个新的byteArray,其中包含插入的byteArray(如果有意义的话)。下面是我的代码,但是我很确定我的测试失败了,有什么地方出了问题。如果您能提供帮助,我们将不胜感激 public void writeBlock(int blockNum, AbstractDBFile f, AbstractBlock b) throws IOException { f.setCurBlockPos(b

因此,我试图实现一种方法,将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();


}
public void writeBlock(int blockNum、AbstractDBFile f、AbstractBlock b)
抛出IOException{
f、 设置路缘锁定位置(blockNum);
byte[]writeData=新字节[4096];
int currentByte=f.getCurBlockPos()*4096;
File ourFile=新文件(f.getFileName());
//块=新块();
Path Path=Path.get(f.getFileName());
Files.write(路径,writeData,StandardOpenOption.write);//数据已写入
RandomAccessFile文件=新的RandomAccessFile(我们的文件,“rw”);
FileChannel inChannel=file.getChannel();
ByteBuffer bb=ByteBuffer.allocate(当前字节);
inChannel.write(bb);
而(在通道读取(bb)>0){
bb.flip();

对于(int i=0;i我建议使用APACHE-COMMON-IO,这是一个很好的库,可以在文件中进行操作。这个库有很多方法可以对文件进行写入、复制、移动等。它很容易使用

按照你的方法,我遇到了很多问题。但是现在我只使用这个库


Good loock

我建议使用APACHE-COMMON-IO,这是一个很好的库,可以在文件中进行操作。这个库有很多方法可以对文件进行写入、复制、移动等操作。它很容易使用

按照你的方法,我遇到了很多问题。但是现在我只使用这个库

好家伙