IO—转换流和键盘录入
简单来说,由于方法的局限性和功能的需要,特此产生了转换流。
InputStreamReader是字节流转换字符流的桥梁,为了提高效率,可以在缓冲区中放入转化流的对象,,并且构造函数第二个参数可以传入一个指定字符编码
读入键盘录入并打印控制台:
InputStream is = System.in;
BufferedReader bufr = null;
InputStreamReader inr = null;
try {
inr = new InputStreamReader(is,"UTF-8");
bufr = new BufferedReader(inr);
String str = null;
char []ch = new char[1024];
while((str = bufr.readLine())!=null) {
System.out.println(str.toUpperCase());
}
}catch(IOException e) {
e.printStackTrace();
}catch(Exception e) {
e.printStackTrace();
}finally {
try {
if(bufr!=null)bufr.close();
if(inr!=null)inr.close();
}catch(IOException e) {
e.printStackTrace();
} }
效果如图
OutPutStreamWriter是字符流通向字节流的桥梁:第二个参数同样可以指定一个字符编码
FileOutputStream fos = null;
OutputStreamWriter otw = null;
BufferedWriter bufw = null;
try {
fos = new FileOutputStream("D:\\xiaofei1.txt");
otw = new OutputStreamWriter(fos,"UTF-8");
bufw = new BufferedWriter(otw);
bufw.write("我爱中国");
bufw.flush();
bufw.write("我是中国人");
}catch(IOException e) {
e.printStackTrace();
}catch(Exception e) {
e.printStackTrace();
}finally {
try {
if(bufw!=null)bufw.close();
}catch(IOException e) {
e.printStackTrace();
}
}
转换流可以指定字符编码,只有BufferedReader的ReaderLine()方法读到末尾的返回值是null,别的read()方法都是读到末尾返回-1,具体用哪个看后缀
流操作的规律:
- 明确源和目的
- 源:输入流 InputStream Reader
- 目的:输出流 OutputStream Writer
- 操作的数据是否是纯文本
- 是:字符流
- 不是:字节流
2.明确体系后要明确具体的使用的对象
- 源设备:内存 硬盘 键盘
- 目的设备:内存 硬盘 控制台
实例:将一个文本文件数据存储到另一个文件中:复制文件
明确体系:
源:文件---读取流------inputStream和Reader
是否是纯文本:是------Reader
目的:文件---写入流-------OutputOutputStream和Writer
是否是纯文本:是:writer
明确设备:
源:Reader
设备:硬盘上一个文件---子类对象:FileReader
FileReader fr = new FileReader("D:xiaofei.txt");
是否要提高效率:是-------加入Reader中的缓冲区:BufferedReader
BufferedReader br = new BufferedReader(fr);
目的:硬盘上的一个文件:子类对象:FileWriter
FileWriter fw = new FileWriter("D:\\xiaofei1.txt");
是否要提高效率:是--------加入Writer缓冲区BufferedWriter
BufferedWriter bufw = new BufferedWriter(fw);
----------看《毕向东java》笔记
IO—转换流和键盘录入的更多相关文章
- Java IO 转换流 字节转字符流
Java IO 转换流 字节转字符流 @author ixenos 字节流 输入字节流:---------| InputStream 所有输入字节流的基类. 抽象类.------------| Fil ...
- IO 转换流
package TestIo; import java.io.*; /** * 转换流 */ public class TestConvertStream { public static void m ...
- Java基础---Java---IO流-----读取键盘录入、InputStreamReader、转换流、OutputStreamWriter、InputStreamReader
字符流: FileReader FileWriter BufferedReader BufferedWriter 字节流: FileInputStream FileOutputStream Buffe ...
- IO流(1)-键盘录入学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低存入文本文件
1.先写一个Student类 public class Student { private String name; private int chinese; private int math; pr ...
- Java之IO转换流
直接上码: 读取键盘录入数据代码演示: import java.io.IOException; import java.io.InputStream; /** *读取键盘录入的数据,并打印在控 ...
- [Day24]IO(转换流、缓冲流)
1. 转换流 1.1 OutputStreamWriter类-字符流通向字节流的桥梁,可使用指定的字符编码表,将要写入流中的字符编码成字节. 1.2 InputStreamReader类-字节流通向字 ...
- 15、IO (转换流、缓冲流)
转换流概述 * A: 转换流概述 * a: 转换流概述 * OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节 * 将字符串按照指定的 ...
- 【转载】Java IO 转换流 字节转字符流
字节流输入字节流:---------| InputStream 所有输入字节流的基类. 抽象类.------------| FileInputStream 读取文件的输入字节流.----------- ...
- java 输入输出IO 转换流-字符编码
编码和其产生的问题: 计算机中储存的信息都是用二进制数表示的,而我们在屏幕上看到的数字.英文.标点符号.汉字等字符是二进制数转换之后的结果. 按照某种规则,将字符存储到计算机中,称为编码 .反之,将存 ...
随机推荐
- Response.write()弹出窗口的问题!
今天偶然发现在.NET中使用Javascript语句弹出窗口时发现一个小小的问题! 例子如下: 1: Response.Write ("<script languge=javascri ...
- lnmp1.5部署laravel项目
毕竟laravel是十分有魅力的框架,忍不住想要深入的了解她,费话不多说,直入正题吧 1.composer切换国内镜像源:composer config -g repo.packagist compo ...
- django ajax MTV与MVC 多对多创建方式
MTV与MVC MTV模型(django): M:模型层(models.py) T:templates V:views MVC模型: M:模型层(models.py) V:视图层(views.py) ...
- python-day6(正式学习)
流程控制之while循环 语法 循环就是一个重复的过程,人需要重复做某项工作,那么计算机也一样.当ATM验证失败,那么计算机就会让我们再输入一次密码.这时候我们说的循环就是while循环,while循 ...
- WPF 异步加载窗体
加载某个界面时,需要获取数据,而数据返回的时间比较长,这个时候可以异步加载界面. 1.在该窗体的加载事件(Load)中编写以下代码: new Thread(p=>{DataBinding();} ...
- THUWC2020游记
Day0 找了旅馆吃了东西才发现明天要去西郊宾馆,换旅馆?? 清华还安排住宿? asas了. 下午出去和kx&face报PKU的名.然后门卫不让进,老吕开启忽悠模式,然后很快就忽悠过去了.(我 ...
- 10 Django之Ajax请求
一.什么是Ajax技术? 异步的JavaScript和XML.使用Javascript语言与服务器进行异步交互,传输的数据为XML(更多的使用json数据).Ajax不是一门新的编程语言,而是一种使用 ...
- Centos7:Solr4.10安装,配置与使用(tomcat环境)
配置jdk环境,安装tomcat 解压solr bin:是脚本的启动目录 contrib:第三方包存放的目录 dist:编译打包后存放目录,即构建后的输出产物存放的目录 docs:solr文档的存放目 ...
- C# 斐波那契数列 第n项数字/前n项的和
static void Main(string[] args) { int a = Convert.ToInt32(Console.ReadLine()); //求第n位数字是多少 Console.W ...
- 描述Cookie和Session的作用,区别和各自的应用范围,Session工作原理
Session用于保存每个用户的专用信息. 每个客户端用户访问时,服务器都为每个用户分配一个唯一的会话ID(Session ID) . 她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右) ...