栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

293 字符流

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

293 字符流

293 字符流

字符流抽象基类

Reader 字符输入流的抽象类

Writer 字符输出流的抽象类

·

字符流中和编码解码问题相关的两个类

InputStreamReader,InputStreamReader是从字节流到字符流的桥接器:它使用指定的charset读取字节并将其解码为字符。 它使用的字符集可以通过名称指定,也可以明确指定,或者可以接受平台的默认字符集。

OutputStreamWriter,OutputStreamWriter是从字符流到字节流的桥接器:使用指定的charset将写入其中的字符编码为字节。 它使用的字符集可以通过名称指定,也可以明确指定,或者可以接受平台的默认字符集。

(查看这两个类的帮助文档)

构造器 描述

OutputStreamWriter​(OutputStream out) 创建使用默认字符编码的OutputStreamWriter。例如 OutputStreamWriter(fos)

OutputStreamWriter​(OutputStream out, String charsetName) 创建使用指定charset的OutputStreamWriter。OutputStreamWriter(fos,UTF-8)

构造器 描述

InputStreamReader​(FileInputStream in) 创建一个使用默认字符集的InputStreamReader。  

InputStreamReader​(FileInputStream in, String charsetName) 创建一个使用指定charset的InputStreamReader。  

InputStreamReader​(FileInputStream in, Charset cs) 创建一个使用给定charset的InputStreamReader。  

InputStreamReader​(FileInputStream in, CharsetDecoder dec) 创建一个使用给定charset解码器的InputStreamReader。  

【报错了】

出问题了

读数据的代码写完,控制台一片空空?

——调整了close语句的顺序以后就正常了。哪个对象的close,就写在用完这个对象之后。然后再写其他的。不需要把所有close语句拎出来排一起

--------------------------------------------------------------

1 package e293;2

3 import java.io.*;4

5 //original edition

6 public class ConversionDemo {

7     public static void main(String[] args) throws IOException {

8         FileOutputStream fos293a = new FileOutputStream("myCharStream\src\e293\e293a.txt");

9         OutputStreamWriter osw293a = new OutputStreamWriter(fos293a);

10         OutputStreamWriter osw293b = new OutputStreamWriter(new FileOutputStream("myCharStream\src\e293\e293b.txt"), "UTF-8");

11         OutputStreamWriter osw293c = new OutputStreamWriter(new FileOutputStream("myCharStream\src\e293\e293c.txt"), "GBK");

12         InputStreamReader isr293a = new InputStreamReader(new FileInputStream("myCharStream\src\e293\e293a.txt"));

13         InputStreamReader isr293b = new InputStreamReader(new FileInputStream("myCharStream\src\e293\e293b.txt"), "GBK");

14

15         osw293a.write("这一次用默认字符集");//输出这一次用默认字符集

16         osw293a.close();

17         osw293b.write("这一次指定字符集UTF-8");//输出这一次指定字符集UTF-8

18         osw293b.close();

19         osw293c.write("这一次指定字符集GBK");//乱码了,这是因为IDEA用UTF-8,这种只能用指定字符集的InputStreamReader才能读出来

20         osw293c.close();

21

22 //解码

23         int ch;

24         System.out.println("t用默认规则解码默认规则编码的文件");

25         while ((ch = isr293a.read()) != -1) {

26             System.out.print((char) ch);

27         }

28         System.out.println();

29         isr293a.close();

30 //解码

31         int chh;

32         System.out.println("t用GBK解码UTF-8编码的文件");

33         while ((chh = isr293b.read()) != -1) {

34             System.out.print((char) chh);

35         }

36         System.out.println();

37         isr293b.close();

38     }

39 }

40

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/531803.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号