本帖最后由 thinkervsruler 于 2014-5-8 10:47 编辑
IO字符流的读取,基本上都是基于Reader中read()方法,LZ可以参考API此方法的文档说明
int read() ,读取单个字符,并返回读取到的字符,但是是以int类型返回的,到文件末尾则返回-1
而write()方法也可以接收int型的数据,void write(int c),写入单个字符,
接收一个int型参数后,writer方法内部会将int型的单个字符自动强转成char型的字符
下面有一个简单的文本文件的复制,您可参考下:
- /*
- 需求:完成文本文件的复制,
- 1.创建写入流并新建一个文本文件,用于存储数据
- 2.创建读取流,关联目标文件
- 3.通过反复循环完成读写操作
- 4.关闭输入输出流
- */
- import java.io.*;
- class CopyTest1
- {
- public static void main(String[] args)
- {
- FileWriter writer = null;
- FileReader reader = null;
- try
- {
- writer = new FileWriter("E:\\FileWriter副本.txt");
- //这里读取的文件,要实际存在才可以,运行时请改成自己硬盘下的文本文件路径
- reader = new FileReader("E:\\FileWriter.txt");
- int ch = 0;
- while((ch = reader.read()) != -1)
- {
- //ch是int型,所以写入时要通过(char)强转成字符型
- writer.write(ch);
- writer.flush();
- }
- }
- catch (IOException e)
- {
- System.out.println("文件读写失败");
- }
- finally
- {
- try
- {
- if(writer != null)
- writer.close();
- }
- catch (IOException e)
- {
- System.out.println("文件写入失败");
- }
- try
- {
- if(reader != null)
- reader.close();
- }
- catch (IOException e)
- {
- System.out.println("文件读取失败");
- }
- }
- }
- }
复制代码
|