StreamReader 和 OutputStreamWriter类用法简介,及演示.docx_第1页
StreamReader 和 OutputStreamWriter类用法简介,及演示.docx_第2页
StreamReader 和 OutputStreamWriter类用法简介,及演示.docx_第3页
StreamReader 和 OutputStreamWriter类用法简介,及演示.docx_第4页
StreamReader 和 OutputStreamWriter类用法简介,及演示.docx_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

InputStreamReader 和 OutputStreamWriter类用法简介。 一、InputStreamReader类InputStreamReader 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。构造方法:InputStreamReader isr = new InputStreamReader(InputStream in);/构造一个默认编码集的InputStreamReader类InputStreamReader isr = new InputStreamReader(InputStream in,String charsetName);/构造一个指定编码集的InputStreamReader类。参数 in对象通过 InputStream in = System.in;获得。/读取键盘上的数据。或者 InputStream in = new FileInputStream(String fileName);/读取文件中的数据。可以看出FileInputStream 为InputStream的子类。主要方法:int read();/读取单个字符。 int read(char cbuf);/将读取到的字符存到数组中。返回读取的字符数。java view plaincopyprint?1. publicstaticvoidtransReadNoBuf()throwsIOException2. /*3. *没有缓冲区,只能使用read()方法。4. */5. /读取字节流 6. /InputStreamin=System.in;/读取键盘的输入。 7. InputStreamin=newFileInputStream(D:demo.txt);/读取文件的数据。 8. /将字节流向字符流的转换。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节. 9. InputStreamReaderisr=newInputStreamReader(in);/读取 10. /InputStreamReaderisr=newInputStreamReader(newFileInputStream(D:demo.txt);/综合到一句。 11. 12. charcha=newchar1024;13. intlen=isr.read(cha);14. System.out.println(newString(cha,0,len);15. isr.close();16. 17. 18. publicstaticvoidtransReadByBuf()throwsIOException19. /*20. *使用缓冲区可以使用缓冲区对象的read()和readLine()方法。21. */22. /读取字节流 23. /InputStreamin=System.in;/读取键盘上的数据 24. InputStreamin=newFileInputStream(D:demo.txt);/读取文件上的数据。 25. /将字节流向字符流的转换。 26. InputStreamReaderisr=newInputStreamReader(in);/读取 27. /创建字符流缓冲区 28. BufferedReaderbufr=newBufferedReader(isr);/缓冲 29. /BufferedReaderbufr=newBufferedReader(newInputStreamReader(newFileInputStream(D:demo.txt);可以综合到一句。 30. /*intch=0;31. ch=bufr.read();32. System.out.println(char)ch);*/33. Stringline=null;34. while(line=bufr.readLine()!=null)35. System.out.println(line);36. 37. isr.close();38. public static void transReadNoBuf() throws IOException /* * 没有缓冲区,只能使用read()方法。 */读取字节流/InputStream in = System.in;/读取键盘的输入。InputStream in = new FileInputStream(D:demo.txt);/读取文件的数据。/将字节流向字符流的转换。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节.InputStreamReader isr = new InputStreamReader(in);/读取/InputStreamReader isr = new InputStreamReader(new FileInputStream(D:demo.txt);/综合到一句。char cha = new char1024;int len = isr.read(cha);System.out.println(new String(cha,0,len);isr.close();public static void transReadByBuf() throws IOException /* * 使用缓冲区 可以使用缓冲区对象的 read() 和 readLine()方法。 */读取字节流/InputStream in = System.in;/读取键盘上的数据InputStream in = new FileInputStream(D:demo.txt);/读取文件上的数据。/将字节流向字符流的转换。InputStreamReader isr = new InputStreamReader(in);/读取/创建字符流缓冲区BufferedReader bufr = new BufferedReader(isr);/缓冲/BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream(D:demo.txt);可以综合到一句。/*int ch =0;ch = bufr.read();System.out.println(char)ch);*/String line = null;while(line = bufr.readLine()!=null)System.out.println(line);isr.close();二、OutputStreamWriter类OutputStreamWriter 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码,如:GBK。构造方法:OutputStreamWriter osw = new OutputStreamWriter(OutputStream out);/构造一个默认编码集的OutputStreamWriter类OutputStreamWriterosw = new OutputStreamWriter(OutputStream out,String charsetName);/构造一个指定编码集的OutputStreamWriter类。参数 out对象通过 InputStreamout = System.out;获得。/打印到控制台上。 或者 InputStreamout = new FileoutputStream(String fileName);/输出到文件中。可以看出FileoutputStream 为outputStream的子类。主要方法:void write(int c);/将单个字符写入。viod write(String str,int off,int len);/将字符串某部分写入。 void flush();/将该流中的缓冲数据刷到目的地中去。java view plaincopyprint?1. publicstaticvoidtransWriteNoBuf()throwsIOException2. OutputStreamout=System.out;/打印到控制台 3. /OutputStreamout=newFileOutputStream(D:demo.txt);/打印到文件 4. OutputStreamWriterosr=newOutputStreamWriter(out);/输出 5. /OutputStreamWriterosr=newOutputStreamWriter(newFileOutputStream(D:demo.txt);/两句可以综合到一句。 6. /intch=97;/a 7. /intch=20320;/你 8. /osr.write(ch); 9. Stringstr=你好吗?;/你好吗? 10. osr.write(str);11. osr.flush();12. osr.close();13. 14. publicstaticvoidtransWriteByBuf()throwsIOException15. /OutputStreamout=System.out;/打印到控制台。 16. OutputStreamout=newFileOutputStream(D:demo.txt);/打印到文件。 17. OutputStreamWriterosr=newOutputStreamWriter(out);/输出 18. /OutputStreamWriterosr=newOutputStreamWriter(newFileOutputStream(D:demo.txt);/综合到一句。 19. BufferedWriterbufw=newBufferedWriter(osr);/缓冲 20. /intch=97;/a 21. /intch=20320;/你 22. /osr.write(ch); 23. Stringstr=你好吗?rn我很好!;/你好吗? 24. bufw.write(str);25. bufw.flush();26. bufw.close();27. public static void transWriteNoBuf() throws IOException OutputStream out = System.out;/打印到控制台/OutputStream out = new FileOutputStream(D:demo.txt);/打印到文件OutputStreamWriter osr = new OutputStreamWriter(out);/输出/OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream(D:demo.txt);/两句可以综合到一句。/int ch = 97;/a/int ch = 20320;/你/osr.write(ch);String str = 你好吗?;/你好吗?osr.write(str);osr.flush();osr.close();public static void transWriteByBuf() throws IOException /OutputStream out = System.out;/打印到控制台。OutputStream out = new FileOutputStream(D:demo.txt);/打印到文件。OutputStreamWriter osr = new OutputStreamWriter(out);/输出/OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream(D:demo.txt);/综合到一句。BufferedWriter bufw = new BufferedWriter(osr);/缓冲/int ch = 97;/a/int ch = 20320;/你/osr.write(ch);String str = 你好吗?rn我很好!;/你好吗?bufw.write(str);bufw.flush();bufw.close();流转换程序1:java view plaincopyprint?1. packageIOtest;2. 3. importjava.io.BufferedReader;4. importjava.io.BufferedWriter;5. importjava.io.FileInputStream;6. importjava.io.FileOutputStream;7. importjava.io.IOException;8. importjava.io.InputStream;9. importjava.io.InputStreamReader;10. importjava.io.OutputStream;11. importjava.io.OutputStreamWriter;12. 13. publicclassTransStreamtest14. 15. /*16. *主要的类:in1,InputStream17. *创建对象InputStreamin=System.in;18. *in2,InputStreamReader没有readLine()方法19. *主要方法:20. *read()读取单个字符,一个汉字也为一个字符。21. *read(charcbuf)将字符读入数组。22. *close().关闭此流和相关联资源。23. *in3,BufferedReader有read(),readLine()方法。24. *out1,OutputStream25. *创建对象OutputStreamin=System.out;26. *out2,OutputStreamWriter27. *主要方法:28. *write(intc)/写入单个字符。29. *write(charcbuf,intoff,intlen)/写入数组的某一部分30. *write(Stringstr,intoff,intlen)/写入字符串烦人某一部分。31. *flush();/刷新该流中的缓冲。32. *close();33. *out3,BufferedWriteer有Write(intch),newLine()方法。34. *35. *36. *throwsIOException37. */38. publicstaticvoidmain(Stringargs)throwsIOException39. /transReadByBuf(); 40. /transReadNoBuf(); 41. transWriteNoBuf();42. /transWriteByBuf(); 43. 44. 45. 46. publicstaticvoidtransWriteNoBuf()throwsIOException47. OutputStreamout=System.out;/打印到控制台 48. /OutputStreamout=newFileOutputStream(D:demo.txt);/打印到文件 49. OutputStreamWriterosr=newOutputStreamWriter(out);/输出 50. /OutputStreamWriterosr=newOutputStreamWriter(newFileOutputStream(D:demo.txt);/两句可以综合到一句。 51. /intch=97;/a 52. /intch=20320;/你 53. /osr.write(ch); 54. Stringstr=你好吗?;/你好吗? 55. osr.write(str);56. osr.flush();57. osr.close();58. 59. publicstaticvoidtransWriteByBuf()throwsIOException60. /OutputStreamout=System.out;/打印到控制台。 61. OutputStreamout=newFileOutputStream(D:demo.txt);/打印到文件。 62. OutputStreamWriterosr=newOutputStreamWriter(out);/输出 63. /OutputStreamWriterosr=newOutputStreamWriter(newFileOutputStream(D:demo.txt);/综合到一句。 64. BufferedWriterbufw=newBufferedWriter(osr);/缓冲 65. /intch=97;/a 66. /intch=20320;/你 67. /osr.write(ch); 68. Stringstr=你好吗?rn我很好!;/你好吗? 69. bufw.write(str);70. bufw.flush();71. bufw.close();72. 73. 74. 75. publicstaticvoidtransReadNoBuf()throwsIOException76. /*77. *没有缓冲区,只能使用read()方法。78. */79. /读取字节流 80. /InputStreamin=System.in;/读取键盘的输入。 81. InputStreamin=newFileInputStream(D:demo.txt);/读取文件的数据。 82. /将字节流向字符流的转换。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节. 83. InputStreamReaderisr=newInputStreamReader(in);/读取 84. /InputStreamReaderisr=newInputStreamReader(newFileInputStream(D:demo.txt);/综合到一句。 85. 86. charcha=newchar1024;87. intlen=isr.read(cha);88. System.out.println(newString(cha,0,len);89. isr.close();90. 91. 92. publicstaticvoidtransReadByBuf()throwsIOException93. /*94. *使用缓冲区可以使用缓冲区对象的read()和readLine()方法。95. */96. /读取字节流 97. /InputStreamin=System.in;/读取键盘上的数据 98. InputStreamin=newFileInputStream(D:demo.txt);/读取文件上的数据。 99. /将字节流向字符流的转换。 100. InputStreamReaderisr=newInputStreamReader(in);/读取 101. /创建字符流缓冲区 102. BufferedReaderbufr=newBufferedReader(isr);/缓冲 103. /BufferedReaderbufr=newBufferedReader(newInputStreamReader(newFileInputStream(D:demo.txt);可以综合到一句。 104. /*intch=0;105. ch=bufr.read();106. System.out.println(char)ch);*/107. Stringline=null;108. while(line=bufr.readLine()!=null)109. System.out.println(line);110. 111. isr.close();112. 113. package IOtest;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;public class TransStreamtest /* * 主要的类:in1,InputStream * 创建对象 InputStream in = System.in; * in2,InputStreamReader 没有readLine()方法 * 主要方法: * read()读取单个字符,一个汉字也为一个字符。 * read(char cbuf)将字符读入数组。 * close().关闭此流和相关联资源。 * in3,BufferedReader 有read(),readLine()方法。 * out1,OutputStream * 创建对象 OutputStream in = System.out; * out2,OutputStreamWriter * 主要方法: * write(int c)/写入单个字符。 * write(char cbuf,int off,int len)/写入数组的某一部分 * write(String str,int off,int len)/写入字符串烦人某一部分。 * flush();/刷新该流中的缓冲。 * close(); * out3,BufferedWriteer 有Write(int ch),newLine()方法。 * * * throws IOException */public static void main(String args) throws IOException /transReadByBuf();/transReadNoBuf();transWriteNoBuf();/transWriteByBuf();public static void transWriteNoBuf() throws IOException OutputStream out = System.out;/打印到控制台/OutputStream out = new FileOutputStream(D:demo.txt);/打印到文件OutputStreamWriter osr = new OutputStreamWriter(out);/输出/OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream(D:demo.txt);/两句可以综合到一句。/int ch = 97;/a/int ch = 20320;/你/osr.write(ch);String str = 你好吗?;/你好吗?osr.write(str);osr.flush();osr.close();public static void transWriteByBuf() throws IOException /OutputStream out = System.out;/打印到控制台。OutputStream out = new FileOutputStream(D:demo.txt);/打印到文件。OutputStreamWriter osr = new OutputStreamWriter(out);/输出/OutputStreamWriter osr = new OutputStreamWriter(new FileOutputStream(D:demo.txt);/综合到一句。BufferedWriter bufw = new BufferedWriter(osr);/缓冲/int ch = 97;/a/int ch = 20320;/你/osr.write(ch);String str = 你好吗?rn我很好!;/你好吗?bufw.write(str);bufw.flush();bufw.close();public static void transReadNoBuf() throws IOException /* * 没有缓冲区,只能使用read()方法。 */读取字节流/InputStream in = System.in;/读取键盘的输入。InputStream in = new FileInputStream(D:demo.txt);/读取文件的数据。/将字节流向字符流的转换。要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节.InputStreamReader isr = new InputStreamReader(in);/读取/InputStreamReader isr = new InputStreamReader(new FileInputStream(D:demo.txt);/综合到一句。char cha = new char1024;int len = isr.read(cha);System.out.println(new String(cha,0,len);isr.close();public static void transReadByBuf() throws IOException /* * 使用缓冲区 可以使用缓冲区对象的 read() 和 readLine()方法。 */读取字节流/InputStream in = System.in;/读取键盘上的数据InputStream in = new FileInputStream(D:demo.txt);/读取文件上的数据。/将字节流向字符流的转换。InputStreamReader isr = new InputStreamReader(in);/读取/创建字符流缓冲区BufferedReader bufr = new BufferedReader(isr);/缓冲/BufferedReader bufr = new BufferedReader(new InputStreamReader(new FileInputStream(D:demo.txt);可以综合到一句。/*int ch =0;ch = bufr.read();System.out.println(char)ch);*/String line = null;while(line = bufr.readLine()!=null)System.out.println(line);isr.close();流转换程序2:java view plaincopyprint?1. packagereadKey;2. 3. importjava.io.FileInputStream;4. importjava.io.FileOutputStream;5. importjava.io.FileReader;6. importjava.io.FileWriter;7. importjava.io.IOException;8. importjava.io.InputStreamReader;9. importjava.io.OutputStreamWriter;10. 11. publicclassTransStreamDemo312. 13. /*14. *paramargs15. *throwsIOException16. */17. publicstaticvoidmain(Stringargs)throwsIOException18. /writeText_1(); 19. /writeText_2(); 20. /writeText_3(); 21. /ReadTest_1(); 22. /ReadTest_2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论