JAVA将数据存储到outputBuffer数组中,并在数据已满时将其写入文件
在开始之前,我想说我只有几个小时的java经验。因此,如果这是一个有点简单的问题,很抱歉 现在,我有一个字节数组,我将字节存储在其中。当它达到最大容量时,我想将其写入二进制文件并继续循环。为此,我实现了以下代码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
// 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 theBuffEredOutStream包含它…您只需编写即可。完成后,应调用flush()
。当我写它时,我应该也使用outputbuffer数组吗?有时outputbuffer不会满,我的意思是它包含的页面大小会小于PageSize,这会导致任何问题吗?@这说明不需要缓冲区数组;BufferedOutstream
包含它自己的。flush()
会清空缓冲区。