文件各种流和复制

[b]文件各种流和复制[/b]
1.字节流
通过读取字节的方式进行文件的输入和输出,用到的类为InputStream和OutputStream,
相应的操作就是调用相应的方法,下面为示例代码,都比较简单
1)输入流应用代码
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class InputDemo {

/**
* 主函数
* @throws IOException
*/
public static void main(String[] args) throws IOException {
InputDemo ipd=new InputDemo();
//此路径为相对路径
String path="src/文件输入/InputDemo.java";
ipd.readFile(path);
}

private void readFile(String path) throws IOException {
//创建输入流对象
InputStream ins=new FileInputStream(path);
//根据输入流创建缓冲流
BufferedInputStream bis=new BufferedInputStream(ins);
//根据流中的字节长度创建一个byte数组
byte array[]=new byte[ins.available()];

//将流中的数据读到数组中(不用缓冲)
ins.read(array);


//运用缓冲流输入
//bis.read(array);


ins.close();
bis.close();
//将数组转换成String类型并输出
System.out.println(new String(array));

}

}


2)输出流应用代码
输出流的代码是关于文件复制的应用
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

public class OutputDemo {

/**
* 主函数
* @throws IOException
*/
public static void main(String[] args) throws IOException {
OutputDemo opd=new OutputDemo();
String path1="C:/Users/Deller/Desktop/人月神话.txt";
String path2="src/文件输出/OutputDemo.java.txt";
opd.copyFile(path1,path2);
}
/**
* 复制文件方法
* @param path1 要复制的文件的路径
* @param path2 文件副本的路径
* @throws IOException文件异常
*/
public void copyFile(String path1,String path2) throws IOException{

InputStream ins=new FileInputStream(path1);
FileOutputStream ops=new FileOutputStream(path2);
//创建缓冲流
BufferedInputStream bis=new BufferedInputStream(ins);
BufferedOutputStream bos=new BufferedOutputStream(ops);
int i=0;
//不运用缓冲读取文件并输出(会很慢的),不信你可以找一个较大的文件

试试
//当ins.read()=-1时,说明文件读取完毕
//while((i=ins.read())!=-1){
// ops.write(i);
//}
//运用缓冲读取文件并输出
while((i=bis.read())!=-1){
bos.write(i);
}
System.out.println("文件复制完成!!!");
bos.flush();
ins.close();
ops.close();
bis.close();
bos.close();

}

}

2.缓冲流
其实上面代码已经运用到了缓冲流,它的创建要根据输出和输入流进行创建。
还没写完。。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值