复制文件-用FileOutputStream和FileInputStream读写文件
Posted on 2016-06-12 14:57 上善其若水,厚德载物 阅读(8743) 评论(1) 编辑 收藏 举报
//写文件
File file=new File("demo1.txt");//抽象一个1.txt的文件,处理文件名或者路径
//构造两个FileOutPutStream的实例对象,先定义一个File类文件的做法比较规范,通用
FileOutputStream fos1=new FileOutputStream(file,false);//true表示如果文件已经存在,没执行程序一次便往文件追加一次内容,否则会每一次的执行结果会覆盖文件上一次执行结果
BufferedOutputStream bos=new BufferedOutputStream(fos1);//把fos1封装成具有缓冲功能的文件输出流
FileOutputStream fos2=new FileOutputStream("demo2.txt");//用一个String构造一个FileOutputStream对象,String为文件名,这种构造方法也可以有两个参数,同上
DataOutputStream dos=new DataOutputStream(fos2);//DataOutputStream提供了写入任意对象的能力
String s1="How are you?";
String s2="Fine.Thanks!";
dos.writeBytes(s1+" "+s2);
fos1.write(s1.getBytes());//把字符串s1以字节流形式写入1.txt文件中
// fos2.write(s2.getBytes());//把字符串s2以字节形式流写入2.txt文件中
fos1.write(s2.getBytes());
//读出文件内容
FileInputStream fis=new FileInputStream(file);
byte[] b=new byte[fis.available()];//创建一个字节数组,数组长度与file中获得的字节数相等
while(fis.read(b)!=-1){
System.out.println(new String(b));//打印出从file文件读取的内容
}
public static void main(String[] args) { File file = new File("e:\\12332.txt"); try { FileOutputStream fos = new FileOutputStream(file); BufferedOutputStream bos = new BufferedOutputStream(fos); DataOutputStream dos = new DataOutputStream(bos); FileInputStream fis = new FileInputStream(new File("e:\\12223.txt")); byte[] b = new byte[1024]; int c = 0; while((c=fis.read(b))!=-1){ dos.write(b, 0, c);; } fis.close(); dos.close(); bos.close(); fos.close(); System.out.println("运行到这"); } catch (Exception e) { e.printStackTrace(); } }
FileInputStream以字节流读取文件
FileOutputStream以字节流读取文件