转换流主要有两个 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 打印流与转换流的更多相关文章

  1. 我爱Java系列之《JavaEE学习笔记day12》---【缓冲流、转换流、序列/反序列化流、打印流】

    [缓冲流.转换流.序列/反序列化流.打印流] 一.缓冲流 1.字节缓冲输出流 java.io.BufferedOutputStream extends OutputStream 高效字节输出流 写入文 ...

  2. Java IO流之转换流

    一.转换流 1.在IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换流 2.转换流用于在字节流和字符流之间转换 3.转换流本身是字符流 二.两种转换流 Ou ...

  3. java ->IO流_转换流

    转换流 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStre ...

  4. 10缓冲流、转换流、序列化流、Files

    十.流 10.1 缓冲流 10.1.1 概述                 缓冲流是对4个基本的FileXxx流的增强,所以也是4个流,按照数据类型进行分类                     ...

  5. javaSE学习笔记(15) ---缓冲流、转换流、序列化流

    javaSE学习笔记(15) ---缓冲流.转换流.序列化流 缓冲流 昨天复习了基本的一些流,作为IO流的入门,今天我们要见识一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够持久化 ...

  6. 01 语言基础+高级:1-8 File类与IO流_day10【缓冲流、转换流、序列化流】

    day10[缓冲流.转换流.序列化流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 能够使用字节缓冲流读取数据到程序 能够使用字节缓冲流写出数据到文件 能够明确字符缓冲流的作用和基本用法 能 ...

  7. I/O流之--转换流:InputStreamReader 和InputStreamWriter

    I/O流之--转换流:InputStreamReader 和InputStreamWriter 分类: java2014-07-01 15:30 815人阅读 评论(0) 收藏 举报   目录(?)[ ...

  8. 383 day10缓冲流、转换流、序列化流

    day10[缓冲流.转换流.序列化流] 主要内容 缓冲流 转换流 序列化流 打印流 教学目标 [ ] 能够使用字节缓冲流读取数据到程序 [ ] 能够使用字节缓冲流写出数据到文件 [ ] 能够明确字符缓 ...

  9. Java-IO流之转换流的使用和编码与解码原理

    一.理论: 1.字符流和字节流区别是什么? 字符流=字节流+编码集,在实际读取的时候其实字符流还是按照字节来读取,但是会更具编码集进行查找编码集字典解析相应的字节,使得一次读取出一个字符: 2.什么是 ...

  10. IO流之转换流

    转换流 OutputStreamWriter类 查阅OutputStreamWriter的API介绍,OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流 ...

随机推荐

  1. 禁止Grid、TreeGrid列排序和列菜单

    Ext的Grid和Treegrid默认提供列菜单的功能,在列菜单中可以进行排序以及控制列显示状态. 在实际项目中,往往有些列是不需要用户看到的,因此就必须屏蔽列菜单的功能. 1.屏蔽Grid,包括Ed ...

  2. <<APUE>> 线程

    一个进程在同一时刻只能做一件事情,线程可以把程序设计成在同一时刻能够做多件事情,每个线程处理各自独立的任务.线程包括了表示进程内执行环境必需的信息,包括进程中标识线程的线程ID.一组寄存器值.栈.调度 ...

  3. redis通过dump.db文件 进行数据替换 复制

    进行数据替换无非就是三步, 杀掉redis进程 ------------> 复制 dump.db文件 ------------------>启动redis   pkill redis-se ...

  4. 手动安装Android Support Library(23.0.1)

    在搭建React-Native开发环境的时候,使用Android Sdk Manager无法找到Android Support Library这一项. 所以google了一下,找到了解决办法. 访问A ...

  5. DP Coins hdoj

    Coins Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submiss ...

  6. [UE4]C++实现动态加载UObject:StaticLoadObject();以Texture和Material为例

    相关内容: C++实现动态加载的问题:LoadClass<T>()和LoadObject<T>() http://aigo.iteye.com/blog/2281558C++静 ...

  7. git clone的时候filename too long解决办法

    在git bash中,运行下列命令: git config --global core.longpaths true

  8. openVswitch(OVS)源代码分析之工作流程(数据包处理)

    上篇分析到数据包的收发,这篇开始着手分析数据包的处理问题.在openVswitch中数据包的处理是其核心技术,该技术分为三部分来实现:第一.根据skb数据包提取相关信息封装成key值:第二.根据提取到 ...

  9. tomcat原理解析(一):一个简单的实现

    tomcat原理解析(一):一个简单的实现 https://blog.csdn.net/qiangcai/article/details/60583330 2017年03月07日 09:54:27 逆 ...

  10. Postman的基础使用

    postman的基础功能,官方文档介绍的是相当啰嗦,所以笔者这里先简单介绍一下主界面,入门功能就都提到了.稍后我们再一一介绍基础功能的使用方法. Collections:在Postman中,Colle ...