文件数据IO操作(一)
Reader和Writer
- Reader是字符输入流的父类
- Writer是字符输出的父类
- 字符流失以字符(char)为单位读写数据,一次处理一个Unicode
字符流的底层任然是基本的字节流
1、使用Reader和Writer实现读写操作
package day03;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
/**
* OutPutStreamWriter
*
* 字符输出流,以字符为单位写出数据
*
* 字符流只用于读写字符数据
* @author Administrator
*
*/
public class OSWDemo {
public static void main(String[] args) throws IOException {
/**
* 向文件中写出数据(写字符串)
* 1、向文件中写数据(FileOutputStream)
* 2、写的是文本数据()
*/
FileOutputStream fos = new FileOutputStream("osw.txt");
/**
* OutputStreamWriter的特点是
* 可以将给定的字符串按照特定的
* 字符集转换为字节后写出
* 使用构造方法:
* OutputStreamWriter(OutputStreamStream out,String charsetName)
*
*/
OutputStreamWriter osw=new OutputStreamWriter(fos,"utf-8");
//直接写字符串就可以
osw.write("没时间放假就是离开");
osw.close();
System.out.println("操作完毕!");
}
}
2、使用Reader和Writer实现读写操作
package day03;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* InputStreamReader
* 字符输入流
* 用于读取字符数据的流
* @author Administrator
*
*/
public class ISRDemo {
public static void main(String[] args) throws IOException {
FileInputStream fis=new FileInputStream("osw.txt");
InputStreamReader isr=new InputStreamReader(fis);
int d=-1;
while( (d=isr.read())!=-1){
char c=(char)d;
System.out.print(c);
}
isr.close();
}
}
3、使用使用字符流复制文本文件
package day03;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/**
* 使用字符流复制文本文件
* @author Administrator
*
*/
public class CopyDemo {
public static void main(String[] args) throws IOException {
FileInputStream fis=new FileInputStream("copy.docx");
FileOutputStream fos=new FileOutputStream("copydemo.docx");
InputStreamReader isr=new InputStreamReader(fis);
OutputStreamWriter osr=new OutputStreamWriter(fos);
int d=-1;
while( (d=isr.read())!=-1){
osr.write(d);
}
System.out.println("拷贝完毕!");
isr.close();
osr.close();
}
}