读书人

黑马软件工程师-IO流复制指定文件中的

发布时间: 2012-12-27 10:17:10 作者: rapoo

黑马程序员-IO流复制指定文件中的内容

----------------------?android培训、java培训、期待与您交流! ----------------------

?

?

黑马程序员-IO流复制指定文件中的内容

?

?

?

?

?

?

?

/*

IO复制一个文本文件

将E盘的一个文本文件数据存储到d盘的一个文件中。

复制的原理:

其实就是将c盘下的一个文件数据存储到d盘的一个文件中。

步骤:

1.在d盘创建一个 文件,用于存储c盘文件中的数据。

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

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

4.关闭资源。

*/

import java.io.*;

class CopyTest

{

public static void main(String[] args)

{

copy_1();

copy_2();

}

/*

使用读取方式中的第一种方式,一次只读一个字符,然后写入一个字符,依次循环执行,完成复制动作。

*/

public static void copy_1()

{

FileWriter fw=null;

FileReader fr=null;

try

{

//创建一个流对象,定义目的地

fw=new FileWriter("D://2.txt");

//创建一个流对象,与源文件项关联

fr=new FileReader("E://1.txt");

int ch=0;

//Reader()读一个字符返回一个字符

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

{

fw.write(ch);

}

}

catch(IOException e)

{

throw new RuntimeException("复制失败");

}

finally

{

if(fr !=null)

try

{

fr.close();

}

catch(IOException e)

{

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

}

if(fw !=null)

try

{

fw.close();

}

catch(IOException e)

{

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

}

}

?

}

/*

使用第二种方式,把读取到的字符存储到数组中,再通过write方法写入到目标文件中

这种方法更高效一些。

*/

public static void copy_2()

{

FileWriter fw=null;

FileReader fr=null;

try

{

//创建一个流对象,定义目的地

fw=new FileWriter("D://3.txt");

//创建一个流对象,与源文件项关联

fr=new FileReader("E://1.txt");

char[] buf=new char[1024];

int len=0;

//read(char[])返回的是读到的数组元素个数。

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

{

//写入数组中0角标到最后角标的元素。

fw.write(buf,0,len);

}

}

catch(IOException e)

{

throw new RuntimeException("复制失败");

}

finally

{

if(fr !=null)

try

{

fr.close();

}

catch(IOException e)

{

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

}

if(fw !=null)

try

{

fw.close();

}

catch(IOException e)

{

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

}

}

?

?

}

}

?

?

----------------------?android培训、java培训、期待与您交流! ----------------------

读书人网 >编程

热点推荐