java中如何将文本流保存在字节数组中

如题所述

读取文件,写到文件中 ,还有保存在字节数组中,不知是否达到你的要求了。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class TestFile {

public static void main(String []args) throws IOException{
// 从 D盘的tt.txt文件中读取数据 这个文件必须存在
File file =new File ("D:/tt.txt");
FileInputStream fr= new FileInputStream(file);
// 写入到D盘的aa.txt文件中 这个文件如果不存在则重新创建一个 在写入,如果存在 则直接写入
File file2 =new File ("D:/aa.txt");
FileOutputStream fw= new FileOutputStream(file2);
// 创建一个字节缓冲区(将从文件读到的字节存在缓冲区中,存满了在写入,在继续将剩余的文件字节存在缓冲区中覆盖掉上一次写满的数据)
byte[] buff=new byte[1024*10];
int count=-1;
String string="";
while((count=fr.read(buff))!=-1){
string +=new String (buff,0,count);
// 写到文件中
fw.write(buff,0,count);
}
fw.flush();
fw.close();
fr.close();
// 将文本流保存在字节数组中
byte[] by=string.getBytes();
// 将字节数组中的文本打印出来
System.out.println(new String (by));
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-02-17
java在使用字节输入流读取文本文件的时候,可以定义字节缓冲区,来实现高效的读取。

如:

FileinputStream fis = new FileinputStream(path);
byte[ ] buffer = new byte[ 1024]; //一次读取1024个字节

然后通过

fis.read( buffer );

来将读取到的字节数保存在字节缓冲区中。
第2个回答  2013-01-31
如果是要将全部数据流都保存,建议使用ArrayOutPutStream来试试。
第3个回答  2013-01-31
定义一个byte[]然后 read ()里面size参数改成1
相似回答