java基础 关于转换流
转换流有两种:InputStreamReader:将字节流转换为字符流
OutputStreamWriter:将字符流转换为字节流
什么时候使用转换流?由以下分析:
流对象很多,首先要明确那个流对象。
通过三点来完成:
1、明确源和目的
源:输入流。InputStream Reader
目的:输出流。 OutputStream Writer
2、操作的数据是否是纯文本。
是:字符流
否:字节流
3、当体系明确后,再明确要使用哪个具体的对象。
通过设备来进行区分:
源设备:内存,硬盘,键盘
目的设备:内存,硬盘,控制台
用一个例子简单的说明:
将键盘录入的数据保存到一个文件中,输入“over”时表示录入结束。
详细分析:
源:从InputStream Reader中选择;
因为是键盘录入的是纯文本,所以使用Reader.
设备:键盘,所以用System.in;
发现System.in是字节流的操作,与Reader(字符流)矛盾,这时就要用到转换流 InputStreamReader
为了提高操作效率,使用缓冲技术,选择BufferedReader
目的:从 OutputStream Writer中选择
因为是文本文件,所以选择Writer,
设备:硬盘上,一个文件,选择FileWriter
为了提高操作效率,使用缓冲技术,选择BufferedWriter
import java.io.*;
class ReadinFile
{
public static void main(String[] args)throws IOException //这里问了方便阅读。先不做异常处理
{
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in)); //将字节流转换为字符流
BufferedWriter bufw=new BufferedWriter(new FileWriter("readin.txt"));
String line=null;
while((line=bufr.readLine())!=null)
{
if("over".equals(line))
break;
bufw.write(line);
bufw.newLine();
}
bufw.close();
bufr.close();
}
}
java基础 关于转换流的更多相关文章
- java基础(24):转换流、缓冲流
1. 转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputS ...
- Java基础教程——转换流
转换流 通常,Window默认的编码方式是GBK,Java项目一般建议设为UTF-8编码.这时候读取文件可能出现乱码.事实上实际应用中编码格式不匹配的场景非常多. 转换流可以指定编码方式,用于解决乱码 ...
- JAVA基础之转换流和缓冲流
个人理解: 在理解的字符流和字节流的区别后.要是想读取指定的编码格式的文件时,特别是不是默认的格式时,就需要转换流了,需要注意的是字符流是需要清除缓冲区的:当需要快速的进行读取时,则需要缓冲流.存在即 ...
- Java基础 使用转换流进行文件的复制 / RandomAccessFile 类进行文件的复制
笔记: **使用转换流进行文件的复制 文本文件---字节流FileInputStream--> [InputStreamReader] -----字符流BufferedReader------ ...
- java基础之IO流(二)之字符流
java基础之IO流(二)之字符流 字符流,顾名思义,它是以字符为数据处理单元的流对象,那么字符流和字节流之间的关系又是如何呢? 字符流可以理解为是字节流+字符编码集额一种封装与抽象,专门设计用来读写 ...
- Java基础之IO流整理
Java基础之IO流 Java IO流使用装饰器设计模式,因此如果不能理清其中的关系的话很容易把各种流搞混,此文将简单的几个流进行梳理,后序遇见新的流会继续更新(本文下方还附有xmind文件链接) 抽 ...
- java基础之IO流(一)字节流
java基础之IO流(一)之字节流 IO流体系太大,涉及到的各种流对象,我觉得很有必要总结一下. 那什么是IO流,IO代表Input.Output,而流就是原始数据源与目标媒介的数据传输的一种抽象.典 ...
- 黑马程序员——JAVA基础之IO流缓冲区,转换流,字节流
------- android培训.java培训.期待与您交流! ---------- 字符流的缓冲区 缓冲区的出现提高了对数据的读写效率. 对应类 • BufferedWriter ...
- JAVA基础学习day22--IO流四-对象序列化、管道流、RandomAccessFile、DataStream、ByteArrayStream、转换流的字符编码
一.对象序列化 1.1.对象序列化 被操作的对象需要实现Serializable接口 1.2.对象序列化流ObjectOutputStream与ObjectInputStream ObjectInpu ...
随机推荐
- Win7环境 搭建IIS环境。发布asp.net MVC项目到IIS(第一期)
一.右键添加网站,输入网站基本配置信息. 二.成功添加网站后,应用程序池里会多一个应用,版本一定要改成4.0,并且模式是集成模式,否则项目报错(原因可以看配置文件中的版本信息). 三.再启用项目时可能 ...
- SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine
今天上课程化平台考试,输入平台网址突然报这个错误 可以先df -h 发现/tmp文件使用满了 ,清理下不需要的临时文件即可
- C# -- 使用FileInfo获取文件信息
C# -- 使用FileInfo获取文件信息 1. 代码实现 static void Main(string[] args) { GetFileInfo(@"D:\Test.xlsx&quo ...
- 关于C#中的++运算符的一些拓展思考
在刷LeetCode题库的时候,看到一个大神写的for循环是这样的 ;i<length;++i) { //dosomething } 其实最终的效果和 ;i<l;i++){} 是一样的. ...
- Web前端教程2-CSS教程
目录 1. CSS基本语法 1.1. CSS基本定义 1.2. CSS布局属性 1.3. CSS文本常用属性 2.CSS选择器 2.1. 标签选择器 2.2. id选择器 2.3. 类选择器 2.4. ...
- 逆卷积的详细解释ConvTranspose2d(fractionally-strided convolutions)
1.首先先定义进行卷积的参数: 输入特征图为高宽一样的Hin*Hin大小的x 卷积核大小kernel_size 步长stride padding填充数(填充0) 输出特征图为Hout*Hout大小的y ...
- 关于 insufficient memory case 4 的解决记录
用户在上传图片的时候,系统会报异常 insufficient memory case 4,追踪代码发生在jdk中 image.io 的 read() 方法.这是一个耽搁了很久的bug,客户反馈了好几次 ...
- button样式篇一(ant Design React)
这篇来介绍button中elementUi.iview.ant中样式结构 ant Design react ant-react中button分两个文件less: mixins.less:根据butto ...
- 接口list
List接口介绍 java.util.List 接口继承自 Collection 接口,是单列集合的一个重要分支,习惯性地会将实现了 List 接口的对象称为List集合. List接口特点: 它是一 ...
- Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用(转)
原文地址:https://www.cnblogs.com/fashflying/p/6908028.html 从3.1开始,Spring引入了对Cache的支持.其使用方法和原理都类似于Spring对 ...