转换流主要有两个 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. TopCoder客户端安装

    参考:https://blog.csdn.net/github_39353095/article/details/76165940 首先,下载 Java 环境. https://www.java.co ...

  2. ML(3.2): NavieBayes R_kalR

    ML3.1 介绍e1071包实施朴素贝叶斯分类的函数,本例使用klaR包中的NaiveBayes函数,因为该函数较之前者增加了两个功能,一个是可以输入先验概率,另一个是在正态分布基础上增加了核平滑密度 ...

  3. 【python】网络编程-SocketServer 实现客户端与服务器间非阻塞通信

    利用SocketServer模块来实现网络客户端与服务器并发连接非阻塞通信.首先,先了解下SocketServer模块中可供使用的类:BaseServer:包含服务器的核心功能与混合(mix-in)类 ...

  4. 织梦调用文章 ID (来源:百度知道)

    问:{dede:field.id /} {dede:channel type='son' orderby='sortrank'} <a href='[field:typeurl/]'>&l ...

  5. android 自定义radiogroup的两种方式

    这里先备注下 listview+radiobutton实现  浅显易懂 http://www.haolizi.net/example/view_3312.html 在radiogoup原生态源码的基础 ...

  6. Javascript之类型检测(一)

    js中有7种内置类型,这7种类型又分为2大类:基本数据类型和对象(object) 一.检测原始(基本数据:字符串.数字.布尔.null.undefined.symbol)类型. 用typeof检测原始 ...

  7. bzoj4271: chemistry 化学

    给定点数n<=500,无标号,度<=4,无根树计数 预处理 无标号,孩子数<=3的有根树个数g 无标号,含k棵树,孩子数<=3的有根树森林个数s[k] 考虑大小为n的无根树的重 ...

  8. spring boot学习(7) SpringBoot 之表单验证

    第一节:SpringBoot 之表单验证@Valid 是spring-data-jpa的功能:   下面是添加学生的信息例子,要求姓名不能为空,年龄大于18岁.   贴下代码吧: Student实体: ...

  9. 配置Samba(CIFS)

    试验环境:一台CentOS 7.0的虚拟机,一台Windows 的普通台式机. 注意:网络一定能够ping通 关闭SeLinux # setenforce 0 # getenforce 关闭防火墙 # ...

  10. [ffmpeg]deocde audio(v3.3.2)

    /* * Copyright (c) 2001 Fabrice Bellard * * Permission is hereby granted, free of charge, to any per ...