JavaSE

Java编程IO流中的转换流

智言 2014年07月25日 阅读(4806) 0

对于IO流中的转换流,顾名思义,就是将字符流转换成字节流或者是将字节流转换成字符流的对象。

那么有时候我们得到的是一个字符流,但是我们又需要进行一些计算之类的,或者我们得到的是一个字节流,但是我们又需要进行一些匹配或者是其他使用的时候,我们就可能会用到转换流,所以转换流对于我们来说是非常方便实用的。

既然转换刘是将字符流转换成字节流或者是将字节流转换成字符流的对象,所以我们就分别用OutputStreamWriterInputStreamReader来表示。

首先来说说InputStreamReader字节流转换成字符流:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Demo {
	public static void main(String[] args) throws IOException{
		//使用输入设备输入字符流
		InputStream ins = System.in;
		
		//将输入的字符流信息转换成字节流
		InputStreamReader insr = new InputStreamReader(ins);
		
		//将转换后的数据存储到缓冲区
		BufferedReader bufr = new BufferedReader(insr);
		
		String str = null;
		
		while((str=bufr.readLine())!=null){
			System.out.println(str.toUpperCase());//toUpperCase()使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
		}
		
		bufr.close();
	}
}

然后来讲讲OutputStreamWriter字节流转换成字符流

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;

public class Demo {
	public static void main(String[] args) throws IOException{
		
		InputStream ins = System.in;
		
		InputStreamReader insr = new InputStreamReader(ins);
		
		BufferedReader bufr = new BufferedReader(insr);
		
		OutputStream outs = System.out;
		
		OutputStreamWriter outsw = new OutputStreamWriter(outs);
		
		BufferedWriter bufw = new BufferedWriter(outsw);
		
		String line = null;
		while((line=bufr.readLine())!=null){
			bufw.write(line.toUpperCase());
			bufw.newLine();
			bufw.flush();
		}
		
		bufr.close();
		bufw.close();
	}
}

精简一下:

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Demo {
	public static void main(String[] args) throws IOException{
		
		BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
				
		BufferedWriter bufw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		String line = null;
		while((line=bufr.readLine())!=null){
			bufw.write(line.toUpperCase());
			bufw.newLine();
			bufw.flush();
		}
		
		bufr.close();
		bufw.close();
	}
}

 

智言

业务开发请联系QQ:5679361

评论 抢沙发

评论前必须登录!

 


如果你觉得本站内容对你有所帮助,比如提升你对编程方面的认识,你可以通过上面的二维码请博主喝杯咖啡,安好。

WEB前端开发部落(公众号:webapp_club)

群列表

前端初级学习群:初级Web前端学习群(后期为支付入群)
PHP初级学习群:PHP(MySQL)学习交流群
QQ群仅作为相关领域讨论平台,均提供高质量问题交流,禁止闲聊,无法接受的朋友请勿加群!
进群需要通过这里获取进群码才能进群哦!

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏