读书人

黑马软件工程师io流之字符流

发布时间: 2013-10-31 12:03:52 作者: rapoo

黑马程序员——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

读书人网 >编程

热点推荐