`
hm4123660
  • 浏览: 278095 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
Dea4ce76-f328-3ab2-b24a-fb268e1eeb75
数据结构
浏览量:69006
社区版块
存档分类
最新评论

IO流之转换流OutputStreamWriter和InputStreamReader

    博客分类:
  • Java
阅读更多

         字符流的底层还是使用字节流实现的,所以字节流时刻转换为字符流的。转换流主要使用到

OutputStreamWriter:将字节输出流转换为字符输出流形式

InputStreamReader:将输入的字节流转换为字符流输入形式

 

 

1.OutputStreamWriter(字节输出流-->字符输出流)

          OutputStreamWriter是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码

 

构造方法:

OutputStreamWriter os = new OutputStreamWriter(OutputStream out);//构造一个默认编码集

OutputStreamWriter os= new OutputStreamWriter(OutputStream out,String charsetName);//构造一个指定编码集的OutputStreamWriter类。

示例代码:

public static void main(String[] args) {
      
    	 try {
    		       //构建一个字节输出流
			OutputStream os=new FileOutputStream("L:\\test.txt");
			
			String dataString="好好学习,天天向上!";
			//通过字节输出流创建字符输出流
			Writer w=new OutputStreamWriter(os);
			w.write(dataString);//输出到文件
			//关闭流
			w.close();
			os.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
   
    }  

 

2.InputStreamReader(字节输入流-->字符输入流)

 

       InputStreamReader 将字节流转换为字符流。是字节流通向字符流的桥梁。如果不指定字符集编码,该解码过程将使用平台默认的字符编码。

 

构造方法:

InputStreamReader isr = new InputStreamReader(InputStream in);//构造一个默认编码

InputStreamReader isr = new InputStreamReader(InputStream in,String charsetName);//构造一个指定编码集的InputStreamReader类。

 

示例代码:

public static void main(String[] args) {
      
    	 try {
    		 //构建一个字节输入流
			InputStream is=new FileInputStream("L:\\test.txt");
			//通过字节输入流构建字符输入流
			Reader r=new InputStreamReader(is);
			//顺便用下缓冲流
			BufferedReader br=new BufferedReader(r);
			//读出一行数据
			System.out.println(br.readLine());
			//关闭流
			br.close();
			r.close();
			is.close();
			
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
   
    }  

 运行结果:



 

 

  • 大小: 5.7 KB
3
3
分享到:
评论

相关推荐

    Java之IO流学习总结

    InputStreamReader 是一个连接字节流和字符流的桥梁,它将字节流转变为字符流。FileReader 可以说是一个达到此功能、常用的工具类,在其源代码中明显使用了将FileInputStream 转变为Reader 的方法。我们可以从这个类...

    java IO流学习笔记——(3)字节缓冲流&字符缓冲流&转换流&数据流

    目录java IO流学习笔记——(3)字节缓冲流&字符缓冲流&转换流&数据流字节缓冲流 —BufferedInputStream&BufferedOutputStream字符缓冲流—BufferedReader&BufferedWriter转换流—InputStreamReader&...

    day019-io笔记和代码.rar

    3. IO流工具类的抽取,将所有的关流(字节流和字符流)方法抽取出来,优化代码 4. 字符流:(重点) * 使用场景:使用于处理文本相关的文件 * * Reader 抽象类: * |子类 * ...

    IO基础(字符流)

    文章目录IO基础(字符流)一、字符流二、常用的字符流类的继承关系三、字符流 FileReader 和 FileWriter四、字符缓冲流 BufferedReader 和 BufferedWriter五、 字符字节转换流(InputStreamReader/...

    java IO章节的总结

    第三,是否需要转换流:InputStreamReader, OutputStreamWriter? 第四,数据来源(去向)是什么:文件?内存?网络? 首先是字节流: InputStream的实现类(System.in返回一个输入流): 1)ByteArrayInputStream...

    Android中文件读写(输入流和输出流)操作小结

    1. Android中文件读写的原理: (1)....字节流转换成字符流可以用InputStreamReader,OutputStreamWriter。 一般我们在使用的时候通常用字节流。 3. 文件读写的步骤: (1).首先建立通道。 (2).然后建

    Java学习日志(二十一): 缓冲流,转换流

    BufferedInputStream字符缓冲输出流:BufferedWriter字符缓冲输入流:BufferedReader文件复制文件排序转换流原理字符转换输出流:OutputStreamWriter字符转换输入流:InputStreamReader转换文件编码 缓冲流 原理 ...

    (超赞)JAVA精华之--深入JAVA API

    1.3 文件和流 1.3.1 什么是数据流 1.3.2 InputStream 的方法有: 1.3.3 OutputStream 的方法: 1.3.4 File 类 1.3.5 文件流的建立 1.3.6 缓冲区流 1.3.7 原始型数据流 1.3.8 对象流 1.3.9 字符流 InputStreamReader/...

    JDK_API_1_6

    OutputStreamWriter OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。 PipedInputStream 管道输入流应该连接到管道输出流;管道输入流提供要写入管道输出流的...

    JAVA SE学习精华集锦

    1.3 文件和流 51 1.3.1 什么是数据流 51 1.3.2 InputStream 的方法有: 51 1.3.3 OutputStream 的方法: 51 1.3.4 File 类 51 1.3.5 文件流的建立 52 1.3.6 缓冲区流 53 1.3.7 原始型数据流 53 1.3.8 对象流 54 1.3.9...

    利用Java代码实现无字符+中文转换为全中文的代码

    import java.io.InputStreamReader; import java.io.OutputStreamWriter; import com.vince.*; /** * 将本地文件以哪种编码输出 * @param inputfile 输入文件的路径 * @param outfile 输出文件的路径 * @param ...

    JAVA基础课程讲义

    InputStreamReader和OutputStreamWriter 161 JAVA对象的序列化和反序列化 161 为什么需要序列化和反序列化 161 对象的序列化主要有两种用途 161 序列化涉及的类和接口 162 序列化/反序列化的步骤和实例 162 综合的...

    超级有影响力霸气的Java面试题大全文档

    派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装:  封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,...

    java经典面试2010集锦100题(不看你后悔)

    D) 程序将字符型转换为unicode编码并和b的数值相加的和输出。 题目3: 下面的说法中,错误的是:d(选择1项) A) 在Java中标志符可以是字母、下划线、数字或$符号。 B) 在Java中布尔类型不能和数字之间不能来回...

    java 面试题 总结

    派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即...

    Java文件处理工具类--FileUtil

    import java.io.*; /** * FileUtil. Simple file operation class. * * @author BeanSoft * */ public class FileUtil { /** * The buffer. */ protected static byte buf[] = new byte[1024]; /**...

    java发送短信之AT指令

    // 下面是得到用于和COM口通讯的输进、输出流。 try { in = new InputStreamReader(serialPort.getInputStream()); out = new OutputStreamWriter(serialPort.getOutputStream()); } catch (IOException e) { ...

Global site tag (gtag.js) - Google Analytics