JAVA TXT字符流复制代码问题
发布网友
发布时间:2022-05-15 00:19
我来回答
共2个回答
热心网友
时间:2023-11-12 21:46
File file=new File("E:\\1.txt");//创建文件对象,
FileInputStream fread; //FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。
BufferedInputStream reader=null;
BufferedOutputStream write=null; //该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。
try
{
fread = new FileInputStream(file);//将文件对象添加到文件的输入流,也就是你要从你的数据源开始读取数据
reader=new BufferedInputStream(fread);//将字节流对象添加到缓存区中,这样效率要高一点
String str=null;//初始化字符串这样保存的是读取的一行的数据
write=new BufferedOutputStream(new FileOutputStream(new File("E:\\2.txt")));//创建的是输出流缓存 请要输出的目的地添加到缓存区中,
byte b[]=new byte[1024];//定义每次读取的字节的范围,也是存储数据的容器
int i=0;
while((i=reader.read(b))!=-1) //下一个数据字节,如果到达流末尾,则返回 -1。
{
write.write(b);//开始写入数据
}
}
catch (FileNotFoundException e) //如果没有文件打印该异常
{
e.printStackTrace();
}
catch (IOException e) //如果出现io异常 也就处理异常
{
e.printStackTrace();
}
finally//最后不管读取还是没读取成功都释放资源
{
try
{
write.close();//关闭缓存区,关闭缓存区会自动关闭相应的io流
reader.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
热心网友
时间:2023-11-12 21:46
上面代码是可执行的,而且已经实现了1.txt内容复制到2.txt中。不过代码太冗余了,下面有以前代码的注释,也有推荐使用的新代码注释。
int bytesum = 0;
int byteread = 0;
// File file=new File("N:\\1.txt");
// FileInputStream fread; //FileInputStream 用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。
//
// BufferedInputStream reader=null;
//
// BufferedOutputStream write=null; //该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。
try
{
// fread = new FileInputStream(file); //获取文件的输入流
//
// reader=new BufferedInputStream(fread); //BufferedInputStream对外提供滑动读取的功能实现 具体可百度
//
// String str=null;
//
// write=new BufferedOutputStream(new FileOutputStream(new File("N:\\2.txt"))); //创建输出流
//
// byte b[]=new byte[1024];
//
// int i=0;
//
// while((i=reader.read(b))!=-1) //下一个数据字节,如果到达流末尾,则返回 -1。
// {
// write.write(b);
// }
InputStream inStream = new FileInputStream(new File("N:\\1.txt")); //从输入流读取原文件
FileOutputStream fs = new FileOutputStream(new File("N:\\2.txt")); //将字节写入输出流即目标文件
byte[] buffer = new byte[1444];
int length;
while ( (byteread = inStream.read(buffer)) != -1) {
bytesum += byteread; //获取字节数 文件大小
System.out.println(bytesum);
fs.write(buffer, 0, byteread); // 把源文件的字节写入目标文件
}
inStream.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
// finally
// {
// try
// {
// write.close();
// reader.close();
// }
// catch (IOException e)
// {
// e.printStackTrace();
// }
// }