java 转换流 打印流 数据流
转换流
InputStreamReader 和 OutputStreamWriter
处理流
用于将字节流转化成字符流,字符流与字节流之间的桥梁
InputStreamReader 的作用是把 InputStream 转换成 Reader
OutputStreamWriter 的作用是把 OutputStream 转换成 Writer
存在将字节流转换成字符流的转换流,因为字符流操作文本
更简单
不存在把字符流转换成字节流的转换流,因为没有必要
System.in 代表标准输入,即键盘输入,是 InputStream 的实
例
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException; public class TestInputStreamReader { public static void main(String[] args) {
//任务需求,从键盘获取数据,写入磁盘文件
//(3)提高读取效率
BufferedReader br = null;
//(4)提高写入效率
BufferedWriter bw = null;
try {
//(1)数据源是标准的输入设备,键盘System.in
InputStream is = System.in;
//(2)需要使用转换流,转换成字符流
InputStreamReader isr = new InputStreamReader(is,"gbk");
br = new BufferedReader(isr);
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("D:\\systein.txt")));
//(5)写入磁盘文件
String line = null;
while(!"over".equals((line=br.readLine()))) {//键盘输入over表示结束
bw.write(line);
bw.newLine();
bw.flush();
}
} catch (UnsupportedEncodingException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}finally {
//(6)关闭
if(bw != null) {
try {
bw.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
if(br != null) {
try {
br.close();
} catch (IOException e) {
// TODO 自动生成的 catch 块
e.printStackTrace();
}
}
}
}
}
控制台输入

------------------------------------------------------------------------------------------------------------------------------------------------------
文本文件

----------------------------------------------------------------------------------------------------------------------------------------
打印流
PrintStream和PrintWriter
PrintStream
1) PrintStream 提供了一系列的 print()和 println(),可以实现
将基本数据类型格式化成字符串输出。对象类型将先调用
toString(),然后输出该方法返回的字符串
2) System.out 就是 PrintStream 的一个实例,代表显示器
3) System.err 也是 PrintStream 的一个实例,代表显示器
4) PrintStream的输出功能非常强大,通常需要输出文本内容,
都可以将输出流包装成 PrintStream 后进行输出
5) PrintStream 的方法都不抛出 IOException
import java.io.PrintStream;
public class TestPrintStream {
public static void main(String[] args) {
PrintStream ps = System.out;//显示器
//PrintStream ps=System.err;
ps.println(123);
ps.println("哈哈哈");
}
}
PrintWriter
1) PrintStream 的对应字符流,功能相同,方法对应。
2) PrintWriter 的方法也不抛出 IOException
3) 复制文件时可以使用PrintWriter代替BufferedWriter完成,
更简单
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.util.Date; public class TestPrintStream {
public static void main(String[] args) throws IOException {
PrintWriter ps = new PrintWriter(new FileOutputStream("D:\\print.txt"));
//无需类型转换,自动转成String类型
ps.println("hello");
ps.println(11);
ps.println(11.12);
ps.println(new Date());
ps.flush();
ps.close(); //只能写入字符串类型
BufferedWriter bw = new BufferedWriter(new FileWriter("D:\\a.txt"));
bw.write("哈哈哈");
//bw.write(234.4);
//bw.write(new Date());
bw.close();
}
}
数据流
DataInputStream 和 DataOutputStream
1) 提供了可以存取所有 Java 基础类型数据(如:int,double
等)和 String 的方法。
2) 处理流,只针对字节流,二进制文件
3) 输入流链和输出流链
4) 注意:只要关闭上层流即可

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; public class TestDateStream { public static void main(String[] args) throws IOException {
//write();
read();
} //读数据的方法
public static void read() throws IOException {
//(1)数据源
FileInputStream fis = new FileInputStream("E:\\data.txt");
//(2)提高读取效率
BufferedInputStream bis = new BufferedInputStream(fis);
//(3)数据流 增加对java基本数据类型和String的处理
DataInputStream dis = new DataInputStream(bis);
//(4)读数据-----读数据的顺序与写数据的顺序一致
System.out.println(dis.readInt());
System.out.println(dis.readBoolean());
System.out.println(dis.readUTF());
System.out.println(dis.readDouble());
//关闭
dis.close();
} public static void write() throws IOException {
/*//(1)目的地
FileOutputStream fos = new FileOutputStream("E:\\data.txt");
//(2)缓冲流提高写入效率
BufferedOutputStream bos = new BufferedOutputStream(fos);
//(3)数据流,增加对java基本数据类型和String的处理
DataOutputStream dos = new DataOutputStream(bos);*/
//三行并作一行
DataOutputStream dos=new DataOutputStream(new BufferedOutputStream(new FileOutputStream("E:\\data.txt")));
//(4)写入数据
dos.writeInt(99);
dos.writeBoolean(true);
dos.writeUTF("qwer");
dos.writeDouble(22.7);
//(5)关闭流
if (dos != null) {
dos.close();
}
}
}
---------------------------------------------------------------------------------------------------------------------
写入的文件------字节 二进制文件 人看不懂 但机器看得懂

--------------------------------------------------------------------------------------------------------------------
读出来的数据

---------------------------------------------------------------------------------------------------------------------------
java 转换流 打印流 数据流的更多相关文章
- Java基础教程——打印流
打印流 打印流可以把原本输出到控制台的信息输出到文件中.PrintStream是字节打印流(还有个对应的字符打印流是PrintWriter,这里不涉及) System类中有个变量: public fi ...
- IO流的Properties集合,序列化流与反序列化流,打印流及commons-IO
内容介绍 Properties集合 序列化流与反序列化流 打印流 commons-IO Properties类 Properties类介绍 Properties 类表示了一个持久的属性集.Proper ...
- 6.5(java学习笔记)其他流(字节数组流,数据流,对象流,打印流)
一.字节数组流 之前使用输入输出流的操作的对象是文件,而这里字节数组流操作的对象是内存,内存可以看做是一个字节数组. 使用字节数组流读写就可以看做是从内存A到内存B的读写,对象时内存即字节数组. 1. ...
- Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)
1.操作基本数据类型的流 1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...
- java 中的打印流
package cn.zhou; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.F ...
- 系统学习 Java IO (十一)----打印流 PrintStream
目录:系统学习 Java IO---- 目录,概览 PrintStream 类可以将格式化数据写入底层 OutputStream 或者直接写入 File 对象. PrintStream 类可以格式化基 ...
- JAVA笔记12__字节、字符缓冲流/打印流/对象流/
/** * !!:以后写流的时候一定要加入缓冲!! * 对文件或其它目标频繁的读写操作,效率低,性能差. * 缓冲流:好处是能更高效地读写信息,原理是将数据先缓冲起来,然后一起写入或读取出来. * * ...
- Properties-转换流-打印流-序列化和反序列化-Commons-IO工具类
一.Properties 类(java.util) 概述:Properties 是一个双列集合;Properties 属于map的特殊的孙子类;Properties 类没有泛型,propert ...
- 34 io流-- 打印流和对象流
概述 io流分为字符流和字节流,具体分类相见下图 字符流:char 一些基本文本的数据传输 字节流:byte 图片.视频等用文本查看器查看不了的文件都是二进制文件,只能用字节流传输,使用字符流cp的看 ...
随机推荐
- C#特性之数据类型
这篇文章主要通过演示类在不同发展中的不通过定义方法,来向读者表述它们之间的区别和联系. 在C#1时代,我们喜欢这样定义类: public class Product { private string ...
- 前端的业余设计-about my 毕业季
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ...
- Django Rest framework 之 版本
RESTful 规范 django rest framework 之 认证(一) django rest framework 之 权限(二) django rest framework 之 节流(三) ...
- UED与UCD
UED User Experience Design(用户体验设计),简称UED.UED是以用户为中心的一种设计手段,以用户需求为目标而进行的设计.设计过程注重以用户为中心,用户体验的概念从开发的最早 ...
- Vue遇到的一些小坑
1.在使用v-html指令时,发现添加的元素不能设置样式 解决方案:在添加样式时使用>>>就可以添加成功 例如:<div v-html="<img src=&q ...
- 测试思想-集成测试 关于接口测试 Part 2
关于接口测试 by:授客 QQ:1033553122 ------------------接Part 1---------------------- 5. 用例设计思想(举例说明) 如上表,是某 ...
- spring 使用外部属性文件
一.PropertyPlaceholderConfigurer spring提供的PropertyPlaceholderConfigurer实现类能够使Bean在配置时引用外部属性文件. Proper ...
- weblogic系列漏洞整理 -- 1. weblogic安装
目录 0. 概述 1. 下载安装Java环境 2. 下载安装weblogic 安装 部署domain域 进入weblogic 3. 排错 如果出现如下错误 0. 概述 WebLogic是美国Oracl ...
- pyhthon常用模块hashlib
python hashlib模块 一,hashlib模块主要用于加密,其中提供sha1,sha224,sha256,sha384,sha512,md5算法.常用的使用md5即可完成需求. 一,使用md ...
- [20171124]xxd与通配符.txt
[20171124]xxd与通配符.txt --//linux 上许多命令都支持通配符,比如$ ls -l *.txt-rw-r--r-- 1 oracle oinstall 44801024 201 ...