java学习笔记8 字符流
2013-10-16 11:43
211 查看
字符流
尽管字节流提供了处理任何类型输入/输出操作的足够的功能, 但它们不能直接操作 Unicode 字符。既然 Java 的一个主要目标是支持“一次编写,处处运行” ,包含直接的字符输入/输出的支持是必要的。
Reader
Reader是定义Java的流式字符输入模式的抽象类。该类的所有方法在出错情况下
都将引发IOException异常。
Reader类中的方法
Writer
Writer 是定义流式字符输出的抽象类。所有该类的方法都返回一个void 值并在出错条件下引发IOException 异常。
Writer类中的方法
FileReader
FileReader 类创建了一个可以读取文件内容的 Reader 类。它最常用的构造方法显示如下:
FileReader(String filePath);
FileReader(File fileObj);
每一个都能引发一个FileNotFoundException 异常。这里,filePath 是一个文件的完整路径,fileObj 是描述该文件的 File 对象。
FileWriter
FileWriter 创建一个可以写文件的 Writer 类。它最常用的构造方法如下:
FileWriter(String filePath);
FileWriter(String filePath, boolean append);
FileWriter(File fileObj);
它们可以引发IOException 或SecurityException 异常。这里,filePath 是文件的绝对路径,fileObj 是描述该文件的 File 对象。如果 append 为 true,输出是附加到文件尾的。FileWriter 类的创建不依赖于文件存在与否。在创建文件之前,FileWriter 将在创建对象时打开它来作为输出。如果试图打开一个只读文件,将引发一个 IOException异常。
代码示例:
注意:字符流用到了缓冲区,而字节流没有用到缓冲区。可以用 Writer 类中的 flush()方法,强清空缓冲区。
尽管字节流提供了处理任何类型输入/输出操作的足够的功能, 但它们不能直接操作 Unicode 字符。既然 Java 的一个主要目标是支持“一次编写,处处运行” ,包含直接的字符输入/输出的支持是必要的。
Reader
Reader是定义Java的流式字符输入模式的抽象类。该类的所有方法在出错情况下
都将引发IOException异常。
Reader类中的方法
Writer
Writer 是定义流式字符输出的抽象类。所有该类的方法都返回一个void 值并在出错条件下引发IOException 异常。
Writer类中的方法
FileReader
FileReader 类创建了一个可以读取文件内容的 Reader 类。它最常用的构造方法显示如下:
FileReader(String filePath);
FileReader(File fileObj);
每一个都能引发一个FileNotFoundException 异常。这里,filePath 是一个文件的完整路径,fileObj 是描述该文件的 File 对象。
FileWriter
FileWriter 创建一个可以写文件的 Writer 类。它最常用的构造方法如下:
FileWriter(String filePath);
FileWriter(String filePath, boolean append);
FileWriter(File fileObj);
它们可以引发IOException 或SecurityException 异常。这里,filePath 是文件的绝对路径,fileObj 是描述该文件的 File 对象。如果 append 为 true,输出是附加到文件尾的。FileWriter 类的创建不依赖于文件存在与否。在创建文件之前,FileWriter 将在创建对象时打开它来作为输出。如果试图打开一个只读文件,将引发一个 IOException异常。
代码示例:
import java.io.*; public class CharDemo { publicstatic void main(String[] args) { Filef = new File("e:\\temp.txt"); Writerout = null; try{ out = new FileWriter(f); } catch (IOException e) { e.printStackTrace(); } String str = "Hello world!!!"; try{ out.write(str); } catch (IOException e1) { e1.printStackTrace(); } try{ out.close(); } catch (IOException e2) { e2.printStackTrace(); } Readerin = null; try{ in = new FileReader(f); } catch (FileNotFoundException e3) { e3.printStackTrace(); } charc1[] = new char[1024]; inti = 0; try{ i=in.read(c1); }catch (IOException e4) { e4.printStackTrace(); } try{ in.close(); }catch (IOException e5) { e5.printStackTrace(); } System.out.println(newString (c1,0,i)); } }
注意:字符流用到了缓冲区,而字节流没有用到缓冲区。可以用 Writer 类中的 flush()方法,强清空缓冲区。
相关文章推荐
- Java字节流和字符流学习和笔记——黑马训练营
- 学习笔记之java.io包中的字符流(上)—— Reader和Writer
- Java IO学习笔记(三):字节流与字符流
- JAVA学习笔记(2-1-字符)
- javaio学习笔记-字符流类(2)
- Java学习笔记之IO(十):BufferedWriter缓冲输出字符流
- Java IO学习笔记:字符流
- Java_Web学习笔记_过滤器应用案例(解决全站字符乱码)
- 12. JAVA IO Party 1 (目标、File类、RandomAccessFile类、字节流和字符流、转换流) ----- 学习笔记
- Java编程思想学习笔记2 - 字节流和字符流
- Java 字符流和字节流-学习笔记
- JAVA学习之字符与字符串_笔记3
- Java IO学习笔记(四):字节-字符转换流
- Java学习笔记之IO(八):FileWriter输出字符流
- java io 学习笔记(三) 字符流读写
- Java学习笔记之 IO包 字符流
- Java学习笔记(55)----------字节流与字符流
- Java IO学习笔记之字节流和字符流
- Java学习笔记(三)——关于Scanner类在读取字符是跳过的问题
- Java IO ---学习笔记(字符流)