Java的I/O笔记(3)
转换流
可以把一个字节流转换为一个字符流,原来按字节读取的字节流“套上”它以后,就可以转换为按字符读取。
1: import java.io.*;
2: public class TestTransForm1 {
3: public static void main(String[] args) {
4: try {
5:
OutputStreamWriter
osw = new OutputStreamWriter(
6: new
FileOutputStream
("d:\\bak\\char.txt"));
7: osw.write("mircosoftibmsunapplehp");
8: System.out.println(osw.getEncoding());
9: osw.close();
10: osw = new OutputStreamWriter(new FileOutputStream("d:\\bak\\char.txt", true),
11: "ISO8859_1"); // latin-1
12: //true 表示文件末尾追加
13: osw.write("mircosoftibmsunapplehp");
14: System.out.println(osw.getEncoding());
15: osw.close();
16: } catch (IOException e) {
17: e.printStackTrace();
18: }
19: }
20: }
OutputStreamWriter : OutputStream是字节流,Writer是字符流, 连起来的OutputStreamWriter就是把OutputStream转换成Writer
构造函数(OutputStream out) FileOutputStream是OutputStream的子类,所以也可以传入作为参数。
本来的字节流OutputStream,外面套个OutputStreamWriter,就变成字符流
1: import java.io.*;
2: public class TestTransForm2 {
3: public static void main(String args[]) {
4: InputStreamReader isr =
5: new InputStreamReader(System.in);
//in是系统的标准输入流,是InputStream的一个子类 ,从DOS窗口输入
6: BufferedReader br = new BufferedReader(isr);
//为何又包了一层?因为BufferedReader有个很好用的方法readline()
7: String s = null;
8: try {
9: s = br.readLine();
10: while(s!=null){
11: if(s.equalsIgnoreCase("exit")) break;
12: System.out.println(s.toUpperCase());
13:
s = br.readLine();
14: }
15: br.close();
16: } catch (IOException e) {
17: e.printStackTrace();
18: }
19: }
20: } //阻塞,不输入就不能干别的
数据流
DateOutputStream 和 DateInputStream 分别继承自OutputStream 和 InputStream ,属于处理流
需要分别“套接”在OutputStream 和 InputStream 类型的节点流上
提供了可以存取与机器无关的Java原始数据类型(double,int…)的方法.
构造方法:DateOutputStream( OutputStream out)
DateInputStream( InputStream in )
1: import java.io.*;
2: public class TestDataStream {
3: public static void main(String[] args) {
4:
ByteArrayOutputStream baos =
5:
new ByteArrayOutputStream();
//new出一个“管道”的时候,同时自动建一个字节数组
6:
DataOutputStream dos =
7:
new DataOutputStream(baos);
//DataOutputStream好处是可以直接输出基本数据类型
8: try {
9:
dos.writeDouble(Math.random()); //写入一个8byte的数
10:
dos.writeBoolean(true); //写入一个1byte的boolean
11: ByteArrayInputStream bais =
12: new ByteArrayInputStream(
baos.toByteArray
());
13: System.out.println(
bais.available()
);
14: DataInputStream dis = new DataInputStream(bais);
15: System.out.println(
dis.readDouble
()); 先写先读,所以要先readdouble,再readboolean
16: System.out.println(
dis.readBoolean
());
17: dos.close(); dis.close();
18: } catch (IOException e) {
19: e.printStackTrace();
20: }
21: }
22: }
转载于:https://www.cnblogs.com/bevin-h/archive/2012/04/23/2466064.html
Java的I/O笔记(3)相关推荐
- java/android 设计模式学习笔记(1)--- 单例模式
前段时间公司一些同事在讨论单例模式(我是最渣的一个,都插不上嘴 T__T ),这个模式使用的频率很高,也可能是很多人最熟悉的设计模式,当然单例模式也算是最简单的设计模式之一吧,简单归简单,但是在实际使 ...
- Java加密与解密笔记(三) 非对称加密
非对称的特点是加密和解密时使用的是不同的钥匙.密钥分为公钥和私钥,用公钥加密的数据只能用私钥进行解密,反之亦然. 另外,密钥还可以用于数字签名.数字签名跟上文说的消息摘要是一个道理,通过一定方法对数据 ...
- (CZ深入浅出Java基础)线程笔记
这是刘意老师的JAVA基础教程的笔记 讲的贼好,附上传送门 传智风清扬-超全面的Java基础 一.线程的引入 1.多线程概述 进程 a.正在运行的程序,是系统进行资源分类和调用的独立单位. b.每个进 ...
- java.util.List学习笔记
概述 在Java中,List是一种特殊的集合结构,即:List是一种有序的集合.在List接口的实现中,需要提供根据列表下表对元素进行操作的方法,包括:插入,删除,查询和修改等: List一般允许重复 ...
- JAVA编程思想读书笔记(三)--RTTI
接上篇JAVA编程思想读书笔记(二) 第十一章 运行期类型判定 No1: 对于作为程序一部分的每个类,它们都有一个Class对象.换言之,每次写一个新类时,同时也会创建一个Class对象(更恰当的说, ...
- Java快速入门学习笔记9 | Java语言中的方法
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- Java快速入门学习笔记8 | Java语言中的数组
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- Java快速入门学习笔记7 | Java语言中的类与对象
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- Java快速入门学习笔记6 | Java语言中的for循环语句
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
- Java快速入门学习笔记5 | Java语言中的while循环语句
有人相爱,有人夜里开车看海,有人却连LeetCode第一题都解不出来!虽然之前系统地学习过java课程,但是到现在一年多没有碰过Java的代码,遇到LeetCode不知是喜是悲,思来想去,然后清空自己 ...
最新文章
- laravel authorize(授权)
- WORD拼页、书籍折页、反向书籍折页功能(3)
- jQuery中eq和get的区别
- 第二次冲刺——第7天
- tkinter 类继承的三种方式
- # 和 ## 的区别
- csh远程登录服务器,ubuntu远程连接服务器某一个用户(非root用户)出现sh: 1: source: not found...
- 故宫夜场门票被炒到3000元一张?网站被挤崩 故宫如此回应...
- matlab的mkdir创建新的文件夹,并把图像保存在该文件夹内
- uni-app 中通过 async + await + Promise 实现 request 请求同步化
- 单片机烧录文件格式转换(1)
- CSS3 3D旋转魔方
- 灵敏度 和 特异度的计算
- 工程地质计算机应用百度云,工程地质计算机应用
- python广义矩估计_《利用Python进行数据分析》13章(中二)建模库介绍
- 自学Linux 2—Linux 的系统架构之 Linux 内核的主要模块和 Linux 的文件结构
- linux涂鸦软件,绘图应用程序:Pinta,Krita,Tux Paint,Drawpile,MyPaint,KolourPaint
- 软件工程可行性研究报告
- Vue 生命周期流程(面向对象编程)
- 动作捕捉助力人-机运动协同性辅助侧翻康复辅具设计