Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.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将数据存储到outputBuffer数组中,并在数据已满时将其写入文件_Java_Arrays_Io - Fatal编程技术网

JAVA将数据存储到outputBuffer数组中,并在数据已满时将其写入文件

JAVA将数据存储到outputBuffer数组中,并在数据已满时将其写入文件,java,arrays,io,Java,Arrays,Io,在开始之前,我想说我只有几个小时的java经验。因此,如果这是一个有点简单的问题,很抱歉 现在,我有一个字节数组,我将字节存储在其中。当它达到最大容量时,我想将其写入二进制文件并继续循环。为此,我实现了以下代码 // I have an byte array my_array which has already been full OutputStream output=null; output = new BufferedOutputStream(new FileOutputStream(o

在开始之前,我想说我只有几个小时的java经验。因此,如果这是一个有点简单的问题,很抱歉

现在,我有一个字节数组,我将字节存储在其中。当它达到最大容量时,我想将其写入二进制文件并继续循环。为此,我实现了以下代码

// I have an byte array my_array which has already been full 
OutputStream output=null;
output = new BufferedOutputStream(new FileOutputStream(outputFName)); //I'm not sure this
byte [] outputBuffer=new byte[PageSize];

int index=0; // shows the last used index in outputBuffer
for(int i=0;i<13;i++){
     // if my_array[i] holds condition{
           // if index>=PageSize{
                  // write the content of outputBuffer into outputFname
                  index=0;
           }
           // else{
                  outputBuffer[index+1]=my_array[i];
              }
      }
}
//我有一个字节数组my\u数组,它已经满了
OutputStream输出=null;
输出=新的BufferedOutputStream(新的FileOutputStream(outputFName))//我不确定这个
byte[]outputBuffer=新字节[PageSize];
int index=0;//显示outputBuffer中最后使用的索引
对于(int i=0;i=PageSize){
//将outputBuffer的内容写入outputFname
指数=0;
}
//否则{
outputBuffer[index+1]=我的_数组[i];
}
}
}

现在我不知道如何将其写入文件。有人帮助我吗?提前谢谢。

只需像这样构造您的
输出流-

output = new BufferedOutputStream(new FileOutputStream(outputFName), PageSize);

然后正常写入。您可以让执行您要求的操作。的第二个参数是缓冲区大小。

在我真正的问题中,如果outputbuffer数组有足够的空间,我会将多个字节放入其中,然后再将其写入文件。在您的解决方案中,我看不到我应该在哪里使用outputbuffer数组?@TheGost the
BuffEredOutStream包含它…您只需编写即可。完成后,应调用
flush()
。当我写它时,我应该也使用outputbuffer数组吗?有时outputbuffer不会满,我的意思是它包含的页面大小会小于PageSize,这会导致任何问题吗?@这说明不需要缓冲区数组;
BufferedOutstream
包含它自己的。
flush()
会清空缓冲区。