---------------------- 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培训、期待与您交流! ----------------------