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 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流 ...
随机推荐
- python 异常类型----后期需理解调整
1.Python内建异常体系结构The class hierarchy for built-in exceptions is: BaseException +-- SystemExit +-- Key ...
- 关于innodb_thread_concurrency参数 并发控制
http://dev.mysql.com/doc/refman/5.5/en/innodb-parameters.html#sysvar_innodb_thread_concurrency Comma ...
- Mybatis常见面试题 三
1.什么是mybatis? (1)mybatis是一个优秀的基于java的持久层框架,它内部封装了jdbc,使开发者只需要关注sql语句本身,而不需要花费精力去处理加载驱动.创建连接.创建statem ...
- 微信小程序之for循环
在微信小程序中也有for循环,用于进行列表渲染. 官方实例 打开微信开发者文档,在框架部分的视图层-->wxml-->列表渲染中可以看到官方给出的for循环实例,在实例中 可以看到下面相关 ...
- 页面引用jquery中文变乱码的问题
<script type="text/javascript" src="Js/JavaScript.js"></script> 方法 ...
- php如何判断IP为有效IP地址
不需要正则表达式来判断,因为在php5.2.0之后,有专门的函数来做这个判断了. 判断是否是合法IP if(filter_var($ip, FILTER_VALIDATE_IP)) { // it's ...
- eterm和easyfare的官网地址
里面有eterm下载和eterm文档资料 运价软件easyfare和easyfare的文档. https://www.eterm.com.cn/caci/eterm/index-cn.jsp http ...
- Redis 密码设置和查看密码
Redis 密码设置和查看密码 redis没有实现访问控制这个功能,但是它提供了一个轻量级的认证方式,可以编辑redis.conf配置来启用认证. 1.初始化Redis密码: 在配置文件中有个参数: ...
- css3选择符
常用的选择符 1.元素选择符 2.id选择符 3.class选择符 4.通配符 5.群组选择符 6.包含选择符 7.伪类选择符(伪类选择符CSS中已经定义好的选择器,不能随便取名) 8.伪对象选择符( ...
- 77. sqlserver 锁表解决方式
select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tra ...