转换流

IO中的流分为字节流和字符流【转换流只有从字节流转换为字符流的类,没有字符流转换成字节流的类】
转换流的类InputStreamReader和OutputStreamWriter
【字节流】任何时候都可以用

【字符流】仅限于文本文件

什么时候用转换流: 当我们的字节流指向一个文本文件,我们用转换流将其转换为字符流会更加方便操作

static void testOutputStreamWriter() {
                          //指向文档的字节输入流
		try (InputStream in = new FileInputStream("hello.txt");
				//将上面的字节流转成字符流输入流
				Reader read = new InputStreamReader(in, "utf-8");
				//创建带缓冲的字符输入流
				BufferedReader bfRead=new BufferedReader(read);
				 //指向文档的字节输出流
				OutputStream out = new FileOutputStream("hell22.txt");
				//将上面的字节流转成字符流输出流
				Writer writer = new OutputStreamWriter(out, "utf-8");
				//创建带缓冲的字符输出流
				 BufferedWriter bfWriter=new BufferedWriter(writer);
				)

		{

			//创建缓冲区用来存放每次读取的数据
			char[] ch=new char[50];
			//每次放入到缓冲区的数据的实际个数
			int len=0;
			//String content="";
			while((len=bfRead.read(ch))!=-1){
			//	content+=new String(ch,0,len);
				bfWriter.write(ch, 0, len);
			}
			//writer.write(content);
			//System.out.println(content);

		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

  

时间: 2024-11-08 17:56:48

转换流的相关文章

理解IO流:InputStream和OutputStream,FileInputStream和FileOutputStream,Reader和Writer,FileReader和FileWriter,BufferedInputStream 和 BufferedOutputStream, BufferedReader 和 BufferedWriter,转换流

/* * 1.理解 "流" ? * 动态性.连续性.方向性. * * 2.在java语言中,将数据的输入/输出称之为 IO流. IO流的分类: * 1) 从方向分: 输入流 , 输出流. (参照计算机的内存) * 将数据送到内存中去称之为输入流.反之,称之为输出流. * * 2) 从处理单位来分: 字节流(8位二进制数据), 字符流(16位二进制数据). * * 3) 从是否有数据源来分: 节点流(有数据源), 处理流(必须套在节点流上). * * 3.在Java语言中,所有流类均来自

转换流--InputStreamReader ,OutputStreamWriter

BufferedReader 字符流,只能装饰字符流,不能装饰字节流.有个重要且好用的方法是readLine()整行读取字符. 但是InputStream是字节流,没有resdLine方法,那么字节流InputStream如何使用readLine方法呢??? 如果能把字节流转换成字符流就可以使用BufferedReader装饰流.也就可以使用readLine方法. 把字节流转换成字符流,或者把字符流转为字节流    称为转换流: InputStreamReader(前缀是功能,后缀是体系):字节

处理流之转换流

InputStream > InputStreamReader: 原来是一个字节一个字节的读,现在可以一个字符一个字符的读 OutputStream > OutputStreamWriter:原来是一个字符一个字符的输出,现在可以以字符或者字符串形式的输出. 这两个转换流是inputstream和outputstream字节流的升级版.实际上都是以字节的形式对文件输出\输入,但升级之后会在内存中转换,方便用户读写. Writer > OutputStreamWriter > Fil

java IO 四(转换流的使用)

扯点别的: 随着年龄的慢慢增长,有些道理才明白,有些爱才感慨.家人或许希望你能立足大城市,开创一番事业.但是在内心里家人永远希望你多花点时间陪陪他们,一起吃吃饭,说说话,只要你平平安安,生活快乐,家人就感到幸福.所以多花点时间陪陪父母.陪陪爱人.陪陪孩子. 又搁置了不短的时间,继续写java io的知识,现在感觉自己的记忆力真的不行了,总是记不住东西,哎,关键还是理解不够深入,靠死记硬背是不行的看样.开搞.参考自毕向东老师的视频 第一: InputStreamReader 看看JDK里面的解释,

java转换流

转换流是把字节流转换成字符流,比如往一个文件中写内容,原本是一个字节一个字节的写,转换为字符流后,我们可以一个字符串,一个字符串的写,书写中文很方便 转换流class: OutputStreamWriter,InputStreamReader 1 import java.io.File; 2 import java.io.FileOutputStream; 3 import java.io.IOException; 4 import java.io.OutputStreamWriter; 5 6

Java之IO转换流

直接上码: 读取键盘录入数据代码演示: import java.io.IOException; import java.io.InputStream; /** *读取键盘录入的数据,并打印在控制台上. * *键盘本身就是一个标准的输入设备, *对于Java而言, */ public class ReadKey { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOE

JAVA学习第五十课 — IO流(四)转换流

一.键盘录入 System.out:标准输出设备,控制台 System.in:标准输入设备,键盘 输入演示 输入字符串遇到回车,打印,输入over,输入结束 PS:键盘的录入只读取一个字节,先将字节拼一个字符串,所以需要一个容器,再参与over的判断 import java.io.*; public class Main { public static void main(String[] args) throws IOException { InputStream in = System.in

转换流以及流规律总结

 转换流: 上边读取键盘录入的代码,与BufferedReader的readLine()方法很相似,那么能不能用readLine()来代替?因为System.in是字节流,它要使用字符流缓冲区的方法,这就需要使用到两个转换流:InputStreamReader和OutputStreamWriter. package tan; import java.io.*; public class TranStreamDemo { public static void main(String[] args)

IO【转换流,打印流,序列化】

编码: 把看的懂,变成看不懂的 String str = "中国"; byte[] bytes = str.getBytes(); System.out.println(Arrays.toString(bytes));解码: 把看不懂的内容,变成能看懂的 String s = new String(bytes); System.out.println(s); java.io.OutputStreamWriter extends Writer OutputStreamWriter:转换流

重要的几种流:文件流、缓冲流、转换流!

一.文件流(字节流,字符流) 1.字节流 package com.zijie; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class TestFileInputStream { public static void main(String[] args) { int b = 0; FileInputStream in = null