JAVA 打印流与转换流
转换流主要有两个 InputStreamReader 和 OutputStreamWriter
1. InputStreamReader 主要是将字节流输入流转换成字符输入流
2. OutputStreamWriter 主要是将字节流输出流转换成字符输出流
打印流主要包含两个:PrintStream 和 PrintWriter,分别对应字节流和字符流
完成屏幕打印的重定向
System.out 对应的就是 PrintStream , 默认在输出在控制台,我们可以重定向他的输出,可以定向到文件
也就是 执行 System.out.println("arry"); 不输出到屏幕,而输出到文件
/*
System.in 可以接收屏幕的输入 */ import java.io.*; public class PrintStreamTest02{ public static void main(String[] args){ BufferedReader br = null; try{ InputStreamReader isr = new InputStreamReader(System.in); br = new BufferedReader(isr); String temp = null;
while((temp = br.readLine()) != null){
System.out.println(temp);
// 如果输出 w 退出循环
if("w".equals(temp)){
break;
}
}
} catch(FileNotFoundException e){
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
} finally{
try{
if(br != null){
br.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
} }
/*
完成屏幕打印的重定向 System.out 对应的就是 PrintStream , 默认在输出在控制台,我们可以重定向他的输出,
可以定向到文件 就是 执行 System.out.println("hehhe"); 不输出到屏幕,而输出到文件 */ import java.io.*; public class PrintStreamTest01{ public static void main(String[] args){ FileOutputStream fos = null; try{ fos = new FileOutputStream("C:\\work\\Java\\arry.txt"); PrintStream ps = new PrintStream(fos); System.setOut(ps); System.out.println("hehehe"); } catch(FileNotFoundException e){
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
} finally{
try{
if(fos != null){
fos.close();
}
}catch(IOException e){
e.printStackTrace();
}
}
} }
对象流可以将 Java 对象转换成二进制写入磁盘,这个过程通常叫做序列化,并且还可
以从磁盘读出完整的 Java 对象,而这个过程叫做反序列化。
对象流主要包括:ObjectInputStream 和 ObjectOutputStream
如何实现序列化和反序列化
/*
OutputStreamWriter 主要是将字节流输出流转换成字符输出流
*/ import java.io.*; public class OutputStreamWriterTest01{ public static void main(String[] args){ BufferedWriter bw = null; try{ // 字节输出流
//FileOutputStream fos = new FileOutputStream("C:\\work\\Java\\arry.txt");
// 字符输出流
//OutputStreamWriter osw = new OutputStreamWriter(fos); bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:\\work\\Java\\arry.txt"))); bw.write("keke老师新婚快乐 !");
bw.newLine(); bw.write("祝福师傅和师娘 新婚快乐,百年好合,白头偕老,早生贵子 ! !!!!"); bw.flush(); } catch(FileNotFoundException e){
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
} finally{
try{
if(bw != null){
bw.close();
}
} catch(IOException e){
e.printStackTrace();
}
}
} }
/*
对象流: 对象流可以将java对象转换成二进制写入磁盘,这个过程叫做“序列化”
还可以从磁盘读取完整的Java对象,这个过程叫 “反序列化” 包括:ObjectInputStream 和 ObjectOutputStream java.io.Serializable */ import java.io.*; public class ObjectStreamTest02{ public static void main(String[] ags){ ObjectInputStream ois = null; try{ FileInputStream fis = new FileInputStream("C:\\work\\Java\\arry.txt"); ois = new ObjectInputStream(fis); // 反序列化
Student stu = (Student)ois.readObject(); System.out.println(stu.name); }catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}catch(ClassNotFoundException e){
e.printStackTrace();
} finally{
try{
if(ois != null){
ois.close();
}
}catch(IOException e){
e.printStackTrace();
}
} } } // 实现序列化接口
class Student implements Serializable{
String name;
}
如果实现序列化该类必须实现序列化接口 java.io. Serializable , 该接口没有任何方法, 该接口
只是一种标记接口,标记这个类是可以序列化的
JAVA 打印流与转换流的更多相关文章
- 我爱Java系列之《JavaEE学习笔记day12》---【缓冲流、转换流、序列/反序列化流、打印流】
[缓冲流.转换流.序列/反序列化流.打印流] 一.缓冲流 1.字节缓冲输出流 java.io.BufferedOutputStream extends OutputStream 高效字节输出流 写入文 ...
- Java IO流之转换流
一.转换流 1.在IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换流 2.转换流用于在字节流和字符流之间转换 3.转换流本身是字符流 二.两种转换流 Ou ...
- java ->IO流_转换流
转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStre ...
- 10缓冲流、转换流、序列化流、Files
十.流 10.1 缓冲流 10.1.1 概述 缓冲流是对4个基本的FileXxx流的增强,所以也是4个流,按照数据类型进行分类 ...
- javaSE学习笔记(15) ---缓冲流、转换流、序列化流
javaSE学习笔记(15) ---缓冲流.转换流.序列化流 缓冲流 昨天复习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化 ...
- 01 语言基础+高级:1-8 File类与IO流_day10【缓冲流、转换流、序列化流】
day10[缓冲流.转换流.序列化流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据到文件 能够明确字符缓冲流的作用和基本用法 能 ...
- I/O流之--转换流:InputStreamReader 和InputStreamWriter
I/O流之--转换流:InputStreamReader 和InputStreamWriter 分类: java2014-07-01 15:30 815人阅读 评论(0) 收藏 举报 目录(?)[ ...
- 383 day10缓冲流、转换流、序列化流
day10[缓冲流.转换流.序列化流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 [ ] 能够使用字节缓冲流读取数据到程序 [ ] 能够使用字节缓冲流写出数据到文件 [ ] 能够明确字符缓 ...
- Java-IO流之转换流的使用和编码与解码原理
一.理论: 1.字符流和字节流区别是什么? 字符流=字节流+编码集,在实际读取的时候其实字符流还是按照字节来读取,但是会更具编码集进行查找编码集字典解析相应的字节,使得一次读取出一个字符: 2.什么是 ...
- IO流之转换流
转换流 OutputStreamWriter类 查阅OutputStreamWriter的API介绍,OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流 ...
随机推荐
- POJ1734无向图求最小环
题目:http://poj.org/problem?id=1734 方法有点像floyd.若与k直接相连的 i 和 j 在不经过k的情况下已经连通,则有环. 注意区分直接连接和间接连接. * 路径记录 ...
- DKH大数据分析平台解决方案优势说明
大数据技术的发展与应用已经在深刻地改变和影响我们的日常生活与工作,可以预见的是在大数据提升为国家战略层面后,未来的几年里大数据技术将会被更多的行业应用. 相信很多人对于大数据技术的应用还是处于一个非常 ...
- 分析报告:云之家V9 VS 钉钉3.5
http://news.yesky.com/hotnews/1/244252501.shtml 1.市场调研 1.1 企业需求 笔者所在单位是一家中型企业,企业流程和信息化基础较为成熟.随着移动互联网 ...
- bzoj1825: [JSOI2010]蔬菜庆典
Description Input Output 对于每组数据,输出一行.若蔬菜的总价能无限制增大,输出"+inf"(不含引号).否则输出一个整数,表示所有蔬菜的最大总价. 首 ...
- mac电脑链接安卓手机的方法
https://blog.csdn.net/liubin9043/article/details/78928253/ 我用了个爱莫 不错 http://web.airmore.com
- Appscan_web安全测试工具 (含修改启动浏览器的方法)
安全测试应该是测试中非常重要的一部分,但他常常最容易被忽视掉. 尽管国内经常出现各种安全事件,但没有真正的引起人们的注意.不管是开发还是测试都不太关注产品的安全.当然,这也不能怪我们苦B的“民工兄弟” ...
- js在html文件中的解析顺序
我们可以将JavaScript代码放在html文件中任何位置,但是我们一般放在网页的head或者body部分. 放在<head>部分 最常用的方式是在页面中head部分放置<scri ...
- 一点ExtJS开发的感悟
虽然项目一直采用ExtJS作为前端开发,接触到了一些ExtJS 的一些场景界面,自己也尝试封装一些组件,对于开发70%基本可以满足需求.遇到最为麻烦的就是Ext的模版或者直接拼接字符串再进行eval转 ...
- Phoenix 安装完的几个简单使用
Phoenix 安装完之后的一些简单使用: 本屌丝的运行环境是3节点集群,先启动hadoop,每个节点分别启动zookeeper,启动hbase(具体怎么启动这里就不多说了) 进入 phoenix的b ...
- JAVA中关于set()和get()方法的理解及使用
对于JAVA初学者来说,set和get这两个方法似乎已经很熟悉了,这两个方法是JAVA变成中的基本用法,也是出现频率相当高的两个方法. 为了让JAVA初学者能更好的理解这两个方法的使用和意义,今天笔者 ...