java中如何将文本流保存在字节数组中
4个回答
展开全部
读取文件,写到文件中 ,还有保存在字节数组中,不知是否达到你的要求了。
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));
}
}
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));
}
}
展开全部
java在使用字节输入流读取文本文件的时候,可以定义字节缓冲区,来实现高效的读取。
如:
FileinputStream fis = new FileinputStream(path);
byte[ ] buffer = new byte[ 1024]; //一次读取1024个字节
然后通过
fis.read( buffer );
来将读取到的字节数保存在字节缓冲区中。
如:
FileinputStream fis = new FileinputStream(path);
byte[ ] buffer = new byte[ 1024]; //一次读取1024个字节
然后通过
fis.read( buffer );
来将读取到的字节数保存在字节缓冲区中。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是要将全部数据流都保存,建议使用ArrayOutPutStream来试试。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
定义一个byte[]然后 read ()里面size参数改成1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询