黑马软件工程师——io流之字符流
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
1.字符流——创建文件
A:创建流对象,建立数据存放文件
FileWriter fw = new FileWriter(“Test.txt”);
B:调用流对象的写入方法,将数据写入流
fw.write(“text”);
C:关闭流资源,并将流中的数据清空到文件中。
fw.close();
2.字符流——读取文件
A:建立一个流对象,和指定的文件数据关联。
FileReader fr = new FileReader(“Test.txt”);
B:创建一个临时存放数据的数组。
char[] ch = new char[1024];
C:调用流对象的读取方法将流中的数据读入到数组中。
fr.read(ch);
3.注意:
A;定义文件路径时,可以用“/”或者“\\”。
B:在创建一个文件时,如果目录下有同名文件将被覆盖。
C:在读取文件时,必须保证该文件已存在,否则出异常。
4.字符流案例之复制文本文件并进行异常处理
/*
请用两种方式复制文本文件F:\xp.txt
*/
//倒入所需要的包和类
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyTest{
public static void main(String[]args){
//调用方法,因为方法是静态的,默认使用类名调用
copy1();
copy2();
}
//定义copy2方法,这个方法使用的是一次读取一个字符数组的方法
public static void copy2(){
FileReader fr=null;
FileWriter fw=null;
try{
fr=new FileReader("F:\\xp.txt");
fw=new FileWriter("G:\\win7.txt");
char[] ch=new char[1024];
int len=0;
while((len=fr.read(ch))!=-1){
fw.write(ch,0,len);
fw.flush();
}
}catch(IOException e){
throw new RuntimeException("du xie shi bai");
}finally{
try{
if(fw!=null)
fw.close();
}catch(IOException e){
throw new RuntimeException("xie ru guan bi shi bai");
}
//判断关闭字符流对象
try{
if(fr!=null)
fr.close();
}catch(IOException e){
throw new RuntimeException("du ru guan bi shi bai");
}
}
}
//定义方法copy1,这个方法使用的字符流中一次读写一个字符的方法,方法比较低效
public static void copy1(){
FileReader fr=null;
FileWriter fw=null;
try{
fr=new FileReader("F:\\xp.txt");
fw=new FileWriter("G:\\win8.txt");
int ch=0;
while((ch=fr.read())!=-1){
fw.write(ch);
}
}catch(IOException e){
throw new RuntimeException("du xie shi bai");
}finally{
try{
if(fw!=null)
fw.close();
}catch(IOException e){
throw new RuntimeException("xie ru guan bi shi bai");
}
try{
if(fr!=null)
fr.close();
}catch(IOException e){
throw new RuntimeException("du ru guan bi shi bai");
}
}
}
}
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net