博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中IO流中的转换流
阅读量:2445 次
发布时间:2019-05-10

本文共 3153 字,大约阅读时间需要 10 分钟。

java中IO流中的转换流

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

package com.itheima_05;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.io.Writer;/* * 需求:读取项目根目录下的SystemInOutDemo.java,并输出到命令行 *  * 数据源:项目根目录下的SystemInOutDemo.java	BufferedReader * 目的地:命令行	System.out *  *  * 由于标准输出流是一个字节输出流,所以只能输出字节或者字节数组,但是我们读取到的数据则是字符串,如果想进行输出还需要转换成字节数组 * 我们要想通过标准输出流输出字符串,把标准输出流转换成一种字符输出流即可,OutputStreamWriter *  * OutputStreamWriter(OutputStream out) :转换流,把字节输出流转换成字符输出流 *  *  */public class OutputStreamWriterDemo {	public static void main(String[] args) throws IOException   {		//method2();				//创建输入流对象		BufferedReader br = new BufferedReader(new FileReader("SystemInOutDemo.java"));		//创建输出流对象		//OutputStream os = System.out;		//Writer w = new OutputStreamWriter(System.out);//多态,父类型引用指向子类对象		//BufferedWriter bw = new BufferedWriter(w);				BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));						//进行数据的读写		String line;//用于存储读取到的数据		while((line = br.readLine()) != null) {			bw.write(line);			bw.newLine();		}							//释放资源		bw.close();		br.close();					}	private static void method2() throws FileNotFoundException, IOException {		//创建输入流对象		BufferedReader br = new BufferedReader(new FileReader("SystemInOutDemo.java"));		//创建输出流对象		//OutputStream os = System.out;		Writer w = new OutputStreamWriter(System.out);//多态,父类型引用指向子类对象				//进行数据的读写		String line;//用于存储读取到的数据		while((line = br.readLine()) != null) {			w.write(line);			w.write("\r\n");		}							//释放资源		w.close();		br.close();	}	private static void method() throws FileNotFoundException, IOException {		//创建输入流对象		BufferedReader br = new BufferedReader(new FileReader("SystemInOutDemo.java"));		//创建输出流对象		OutputStream os = System.out;				String line;//用于存储读取到的数据		while((line = br.readLine()) != null) {			os.write(line.getBytes());			os.write("\r\n".getBytes());		}				//释放资源		os.close();		br.close();	}}

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

package com.itheima_05;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.Reader;/* * 需求:读取键盘录入的数据,并输出到项目根目录下的a.txt文件中 *  * 数据源:读取键盘录入的数据	System.in * 目的地:项目根目录下的a.txt	FileWriter *  *  *  * 转换流:需要把字节输入流转换成字符输入流,InputStreamReader * InputStreamReader(InputStream in)  */public class InputStreamReaderDemo {	public static void main(String[] args) throws IOException  {		//创建输入流对象		InputStream is = System.in;		Reader r = new InputStreamReader(is);		//创建输出流对象		FileWriter fw = new FileWriter("a.txt");				//读写数据		char[] chs = new char[1024];		int len;		while((len = r.read(chs)) != -1) {			fw.write(chs,0,len);			fw.flush();		}						//释放资源		fw.close();		is.close();			}	private static void method() throws IOException {		//创建输入流对象		InputStream is = System.in;		//创建输出流对象		FileWriter fw = new FileWriter("a.txt");				//读写数据		byte[] bys = new byte[1024];		int len;//用于存储读取到的字节个数		while((len = is.read(bys)) != -1) {			fw.write(new String(bys,0,len));			fw.flush();		}						//释放资源		fw.close();		is.close();	}}

转载地址:http://anjqb.baihongyu.com/

你可能感兴趣的文章
AIX系统日常管理(转)
查看>>
Fedora Core 6的新特性(转)
查看>>
不得不说 僵尸网络导致垃圾邮件猛增(转)
查看>>
linux网络知识:TCP/IP设置内容(转)
查看>>
GNOME帮助Linux应用于商业桌面环境(转)
查看>>
linux网络知识:与网络设置有关的几个文件(转)
查看>>
Linux文件内容查询命令(转)
查看>>
libc.a 文件恢复(转)
查看>>
SCO UNIX上cpio命令详细用法(转)
查看>>
Linux系统可卸载内核模块完全指南(下)(转)
查看>>
思考-两个大表的关联.txt
查看>>
WIDTH_BUCKET和NTILE函数.txt
查看>>
sql plan baseline(二)
查看>>
第十章 sqlplus的安全性
查看>>
第十三章 sqlplus命令(一)
查看>>
第三章(backup and recovery 笔记)
查看>>
第一章(backup and recovery 笔记)
查看>>
第六章(backup and recovery 笔记)
查看>>
oracle备份功能简述
查看>>
[转]数据库三大范式
查看>>