黑马程序员——IO流的复制文件方法(含缓冲区方法)

来源:互联网 发布:linux libzip 编辑:程序博客网 时间:2024/04/27 15:25

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

//将C盘一文本文件复制到D盘

步骤:

1.在D盘创建一个文件,用于存储C盘文件中的数据

2.定义读取流和c盘文件关联

3.通过不断的读写完成数据存储

4.关闭资源


第一种方式(简化):

public staticvoid copy_1()throws IOException

{

//创建目的地

FileWriter fw=new FileWriter("RuntimeDemo_copy.txt");

//与已有文件关联

FileReader fr=new FileReader("RuntimeDemo.java");

int ch=0;

while((ch=fr.read())!=-1)

{

fw.write(ch);

}

fw.close();

fr.close();

}


第二种方式:(标准)

public staticvoid copy_2()throws IOException

{

FileWriter fw=null;

FileReader fr=null;

try

{

fw=new FileWriter("RuntimeDemo_copy.txt");

fr=new FileReader("RuntimeDemo.java");

char[] buf=new char[1024];

int len=0;

while((len=fr.read())!=-1)

{

fw.write(buf,o,len);

}

}

catch(IOException e)

{

throw new RuntimeException("读写失败")

}

//关闭数据流(一定要分开抛出异常)

finally //一定会执行 

{

try{

if(fr!=null)

{fr.close();}

catch(IOException e)

{}

try{

if(fw!=null)

{fw.close();}

catch(IOException e)

{}

}

}

}

 

 

缓冲区复制文件

public static void mian(String[] args)

{

//定义缓冲去读写流对象

BufferedReader bufr=null;

BufferedWriter bufw=null;

try{

bufr=new BufferedReader(new FileReader("BufferedWrirterDemo.java"));  //new FileReader()定义字符读取流对象

bufw=new BUfferedWriter(new FileWriter())//new FileWriter()定义字符写入流对象

String line=null;

While((line=bufr.readLine())!=null)//判断是否读到末尾(当返回值为null时表示已读到末尾)

{

bufw.write(line);

bufw.newline();//换行

bufw.flush();//刷新

}

}

catch(IOException e)

{

throw new RuntimeException("读写失败");

}

finally{

try{

if(bufr!=null)

bufr.close();

}

catch(IOException e)

{

throw new RuntimeException("读取关闭失败");

}

try{

if(bufw!=null)

bufw.close();

}

catch(IOException e)

{

throw new RuntimeException("写入关闭失败");

}


 

}

}



------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

 

 

0 0
原创粉丝点击