IO流详解(三)转换流
来源:互联网 发布:java中如何记录日志 编辑:程序博客网 时间:2024/06/06 14:10
第一章节我们讨论了,字符串文本操作是很常见的需求jdk帮我们封装好了一些操作字符流的reader和writer。普通的FileReader和FileWriter都是默认平台的编码方式。 当我们想用特殊的编码格式的writer和reader就需要使用今天所讲的转换流OutputStreamWriter和InputstreamReader。
InputStreamReader和OutputStreamWriter
思考:我们键盘录入都是字节流录入的,一次读一个肯定太麻烦了。我们知道有字符流BufferReader有一个readLine方法,如果一次读一行的话是不是就轻松很多了。 但是! 字节流没有这个方法 我们想通过 BufferedReader,来装饰InputStream,很明显是不行的。
这时候就jdk为我们提供了 InputStreamReader,字节流通向字符流的桥梁。其实字符流的底层就是InputStreamReader。
public class TransStreamDemo {public static void main(String[] args) throws IOException {InputStream in = System.in;OutputStream out = System.out;/* * 将字节转字符的桥梁,读就是把看不懂的变成看的懂的。 解码 * 这样,我们操作起来就方便一点 */InputStreamReader isr = new InputStreamReader(in);/* * 将字符转向字节的桥梁,写就是把看的懂的变成看不懂的。 编码 * 这样,我们存起来方便一点,因为文件都是存放二进制,就省去了wirte("Tig".getBytes()); */OutputStreamWriter osw = new OutputStreamWriter(out);//字符流BufferedReader burf = new BufferedReader(isr);BufferedWriter bufw = new BufferedWriter(osw);String line = null;while ( (line = burf.readLine()) != null) {if ("exit".equals(line)) {break;}bufw.write(line.toUpperCase());bufw.newLine();bufw.flush();}}}
指定编码格式
指定编码格式操作就很简单的,直接早构造器中加入编码格式就可以了。网上很多人提到的说io出现乱码,基本用转换流都能解决
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("gbk_3.txt"), "GBK");InputStreamReader isr = new InputStreamReader(new FileInputStream("gbk_3.txt"), "GBK");
剩下的操作就大同小异了
阅读全文
0 0
- IO流详解(三)转换流
- Java IO流详解(三)
- IO流(三)
- IO流(三)
- IO流(三)之IO包其他功能流及字符编码详解
- IO流总结(三)
- JAVA--IO流(三)
- IO(三)字符流
- 黑马程序员——IO流(三)字节流、字符流、转换流
- IO数据类型转换流
- 关于IO转换流
- IO之转换流
- Java IO 转换流
- io转换流
- IO类:转换流
- IO转换流
- IO—转换流
- IO之转换流
- Collections 洗牌算法源码
- 9种常用的设计模式及7大原则
- 关于Http status415的问题
- OpenCV2.4.13+CUDA8.0+SSBA3.0+VS2010编译安装
- leetcode128
- IO流详解(三)转换流
- 悬镜安全实验室招人了,高级渗透测试人才简历投过来
- 日常学习总结
- 零配置-----1、Tomcat如何加载Spirng
- 基于c语言的租金管理系统
- Android Bitmap 全面解析(一) 加载大尺寸图片
- 解决Debian环境无法update更新源问题及更换阿里云镜像
- Add to List 310. Minimum Height Trees
- 页面table导出Excel——table2excel