Java I/O 学习笔记(4) reader和writer
2015-04-22 17:39
288 查看
package files; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.CharArrayReader; import java.io.CharArrayWriter; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.LineNumberReader; import java.io.OutputStreamWriter; import java.io.StreamTokenizer; import java.io.StringReader; import java.io.StringWriter; import java.util.Arrays; public class TestReaderWriter { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { testFileReaderWriter(); testStreamAdapter(); testStringReaderWriter(); testCharArrayRW(); testLineNumberRW(); testStreamTokenizer(); testBufferedReader(); } /** * 读取中文会产生乱码,因为系统默认编码是GBK,而文件的格式是UTF-8。一种选择是 * 改变系统默认编码为UTF-8,另一种方法见testStreamAdapter() * * @throws IOException */ public static void testFileReaderWriter() throws IOException { char[] charBuffer = new char[100]; BufferedReader br = new BufferedReader(new FileReader("./input.txt")); br.read(charBuffer); System.out.println(charBuffer); br.close(); BufferedWriter bw = new BufferedWriter(new FileWriter("./output.txt")); bw.write("Hello world."); bw.close(); } public static void testStreamAdapter() throws IOException { char[] charBuffer = new char[100]; BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream("./input.txt"), "UTF-8")); br.read(charBuffer); br.close(); System.out.println(charBuffer); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("./output.txt"), "UTF-8")); bw.write("正则表达式。"); bw.close(); } public static void testStringReaderWriter() throws IOException { StringReader sr = new StringReader("正则表达式"); char[] charBuffer = new char[2]; while (-1 != sr.read(charBuffer)) { System.out.println(Arrays.toString(charBuffer)); } StringWriter sw = new StringWriter(); sw.write("正则表达式"); sw.append("。"); System.out.println(sw.toString()); } public static void testCharArrayRW() throws IOException { char[] chars = new char[] { '正', '则', '表', '达', '式' }; CharArrayReader car = new CharArrayReader(chars); char[] charBuffer = new char[2]; while (-1 != car.read(charBuffer)) { System.out.println(Arrays.toString(charBuffer)); } CharArrayWriter caw = new CharArrayWriter(); caw.write("正则表达式"); caw.append("。"); System.out.println(caw.toString()); } public static void testLineNumberRW() throws IOException { LineNumberReader lnr = new LineNumberReader(new StringReader( "正则\r\n表达\r\n式")); char[] charBuffer = new char[2]; while (-1 != lnr.read(charBuffer)) { System.out.println(Arrays.toString(charBuffer)); System.out.println(lnr.getLineNumber()); } } public static void testStreamTokenizer() throws IOException { StreamTokenizer sTokenizer = null; int wordCount = 0, numberCount = 0; sTokenizer = new StreamTokenizer(new FileReader("./input.txt")); while (sTokenizer.nextToken() != StreamTokenizer.TT_EOF) { if (sTokenizer.ttype == StreamTokenizer.TT_WORD) { wordCount++; System.out.println(sTokenizer.sval); } else if (sTokenizer.ttype == StreamTokenizer.TT_NUMBER) { numberCount++; System.out.println(sTokenizer.nval); } } System.out.println("Number of words in file: " + wordCount); System.out.println("Number of numbers in file: " + numberCount); } public static void testBufferedReader() throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = null; while ((s = br.readLine()) != null && s.length() != 0) { System.out.println(s); } } }
相关文章推荐
- java学习笔记之FileReader FileWriter
- JAVA学习笔记(三十二)- 字符流 FileReader & FileWriter
- 学习笔记之java.io包中的字符流(上)—— Reader和Writer
- 【Java基础学习笔记】输入输出流之Reader
- java Io reader writer 笔记3
- java学习笔记之BufferedReader与BufferedWriter
- OutputStream、InputStream、Writer、Reader学习笔记
- java学习之文件IO流,BufferedReader/BufferedWriter学习
- Java基础知识强化之IO流笔记36:InputStreamReader/OutputStreamWriter 复制文本文件案例
- Java基础知识强化之IO流笔记37:FileReader/FileWriter(转换流的子类)复制文本文件案例
- Java IO 流的学习之 BufferedReader/BufferedWriter
- InputStreamReader类和OutputStreamWriter类学习笔记
- Java学习笔记-Scanner和BufferedReader的区别和用法
- Java IO学习笔记(九):BufferedReader和Scanner
- 黑马程序员_学习笔记:13) IO流: 字节流(InputStream、OutputStream)、字符流(Reader、Writer)、File类、递归
- JAVA学习第十天--io流基础-FileWriter/FileReader/BufferedWriter/BufferedReader
- Java IO学习笔记(九):BufferedReader和Scanner
- java IO笔记(CharArrayReader/CharArrayWriter)
- java IO笔记(Reader/Writer)
- 学习笔记之面向对象编程19(流之Reader,Writer)