您的位置:首页 > 编程语言 > Java开发

java基础6:io流对象之字符输入输出流

2017-11-12 21:40 302 查看
1,FileWriter

/*

 *   字符输出流

 *     java.io.Writer 所有字符输出流的超类

 *   写文件,写文本文件

 *   

 *   写的方法 write

 *     write(int c) 写1个字符

 *     write(char[] c)写字符数组

 *     write(char[] c,int,int)字符数组一部分,开始索引,写几个

 *     write(String s) 写入字符串

 *     

 *   Writer类的子类对象 FileWriter

 *   

 *   构造方法:  写入的数据目的

 *     File 类型对象

 *     String 文件名

 *     

 *   字符输出流写数据的时候,必须要运行一个功能,刷新功能

 *   flush()

 */

FileWriter fw = new FileWriter("c:\\1.txt");

//写1个字符
fw.write(100); //记事本显示b
fw.flush();

//写1个字符数组
char[] c = {'a','b','c','d','e'};
fw.write(c);  //显示abcde
fw.flush();

//写字符数组一部分
fw.write(c, 2, 2);
fw.flush();   //显示cd

//写如字符串
fw.write("hello");   显示hello
fw.flush();

fw.close();

2,FileReader

/*

 *  字符输入流读取文本文件,所有字符输入流的超类

 *    java.io.Reader

 *  专门读取文本文件

 *  

 *  读取的方法 : read()

 *   int read() 读取1个字符

 *   int read(char[] c) 读取字符数组

 *   

 *   Reader类是抽象类,找到子类对象 FileReader

 *   

 *   构造方法: 绑定数据源

 *     参数:

 *        File  类型对象

 *        String文件名

 */

FileReader fr = new FileReader("c:\\1.txt");
/*int len = 0 ;
while((len = fr.read())!=-1){
System.out.print((char)len);
}*/
char[] ch = new char[1024];
int len = 0 ;
while((len = fr.read(ch))!=-1){
System.out.print(new String (ch,0,len));
}

fr.close();

字符流复制文件

/*

 *  字符流复制文本文件,必须文本文件

 *  字符流查询本机默认的编码表,简体中文GBK

 *  FileReader读取数据源

 *  FileWriter写入到数据目的

 */

FileReader fr = null;
FileWriter fw = null;
try{
fr = new FileReader("c:\\1.txt");
fw = new FileWriter("d:\\1.txt");

int len = 0;

char[] ch = new char[1024];

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

fw.write(ch,0,len);

fw.flush();       //必须刷新

}

}

此方法只能复制用记事本可以读取的文本内容,复制别的内容会导致文件打不开
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐