字节流 (Reader,Writer)

    输入流  FileReader

      

public class Demo {
public static void main(String[] args) throws IOException {
FileReader fr=new FileReader("b.txt");
int len;
while((len=fr.read())!=-1){
System.out.print((char)len);
}
fr.close();
}
}

  

    输出流  FileWriter

public class Demo {
public static void main(String[] args) throws IOException {
FileReader fr=new FileReader("b.txt");
//创建输出流对象
FileWriter fw=new FileWriter("a.txt");
char[] ch=new char[1024];
int len;
while((len=fr.read(ch))!=-1){//读数据
//写出数据
fw.write(ch,0,len);
}
//关闭流
fr.close();
fw.close();
}

  

   高效流    BufferedReader   BufferedWriter

public class Demo {
public static void main(String[] args) throws IOException {
//fileReaderDemo();
FileReader fr=new FileReader("b.txt");
          //创建高效输入字符流对象
BufferedReader br=new BufferedReader(fr);
//创建输出流对象
FileWriter fw=new FileWriter("a.txt");
BufferedWriter bw=new BufferedWriter(fw);
char[] ch=new char[1024];
String len;
while((len=br.readLine())!=null){//读数据
//写出数据
bw.write(len);
bw.newLine();
bw.flush();
}
//关闭流
br.close();
bw.close();
}
}

字符流  (InputStream,OutputStream)

    输入流  FileInputStream

      

public class Demo {
public static void main(String[] args) throws IOException {
FileInputStream fis=new FileInputStream("a.txt");
int len;
while ((len=fis.read())!=-1) {
System.out.print((char)len);
}
fis.close();
}
}

    输出流 FileOutputStream

public class Demo {
public static void main(String[] args) throws IOException {
//fileReaderDemo();
//method01();
FileInputStream fis=new FileInputStream("b.txt");
FileOutputStream ios=new FileOutputStream("a.txt");
int len;
while ((len=fis.read())!=-1) {
ios.write(len);
}
fis.close();
ios.close();
}
}

  

    高效流

public class Demo {
public static void main(String[] args) throws IOException {
//fileReaderDemo();
//method01();
FileInputStream fis=new FileInputStream("b.txt");
BufferedInputStream bis=new BufferedInputStream(fis);
FileOutputStream ios=new FileOutputStream("a.txt");
BufferedOutputStream bos=new BufferedOutputStream(ios);
byte[] b=new byte[1024];
int len;
while ((len=bis.read(b))!=-1) {
bos.write(b,0,len);
bos.flush();
}
fis.close();
ios.close();
}
}

  

转换流

    输入流      InputStreamReader

    输出流      outputStreamWriter

public class Demo {
public static void main(String[] args) throws IOException {
//fileReaderDemo();
//method01();
FileInputStream fis=new FileInputStream("b.txt");
InputStreamReader isr=new InputStreamReader(fis);//转化为字符流 转换输入流
BufferedReader br=new BufferedReader(isr);//包装为高效流
FileOutputStream ios=new FileOutputStream("a.txt");//转化为字符流 转换输出流
OutputStreamWriter osw=new OutputStreamWriter(ios);//包装为高效流
BufferedWriter bw=new BufferedWriter(osw);
String len;
while ((len=br.readLine())!=null) {
bw.write(len);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}

  

标准流

    输入流

public class Demo {
public static void main(String[] args) throws IOException {
//标准输入流
InputStream in = System.in;
InputStreamReader fis=new InputStreamReader(in);
int len;
while ((len=fis.read())!=-1) {
System.out.print((char)len);
}
fis.close();
}
}

    输出流

public class Demo {
public static void main(String[] args) throws IOException {
PrintStream out = System.out;
InputStreamReader fis=new InputStreamReader(new FileInputStream("a.txt"));
OutputStreamWriter osw=new OutputStreamWriter(out);
int len;
while((len=fis.read())!=-1){
osw.write(len);//输出到控制台
}
fis.close();
osw.close();
}
}

输出流   (不能写出)

    输入流   PrintWriter(父类为Writer)

		PrintWriter pw=new PrintWriter("c.txt");
pw.println("hello");
pw.println("world");//将内容写入c.txt文件中 自带刷新功能
pw.close();

  

对象流   (序列化)

    输出流(将对象写入到文件中,这个对象必须序列化才能写入到文件中   否则会报错)

    输入流 ()

public class ObjectTest {
public static void main(String[] args) throws IOException, Exception {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(
"d.txt"));
ArrayList<Student> array = new ArrayList<Student>();
Student s1 = new Student("赵云", 15);
Student s2 = new Student("张飞", 15);
array.add(s1);
array.add(s2);
oos.writeObject(array);//序列化过程
oos.close();
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(//反序列化
"d.txt"));
ArrayList<Student> arrays = (ArrayList<Student>) ois.readObject();
for (Student student : arrays) {
System.out.println(student);
}
}
}

  

public class Student implements Serializable {
/**
*
*/
private static final long serialVersionUID = -3919560601713535195L;
// serialVersionUID 用来标识类的唯一性 它是根据类的内容计算出来的 如果写入和读出的类的id不一致 则会报错
String name;
int age;
String sex; public Student(String name,int age){
this.name=name;
this.age=age;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
} }

  

错误异常
java.io.InvalidClassException
local class incompatible: 类不相容
stream classdesc serialVersionUID = -3919560601713535195, local class serialVersionUID = 5350889806824666248

  

解决方案:
给类进行唯一标识
让类自动生成 UID

  

day10(IO流汇总)的更多相关文章

  1. Java IO流操作汇总: inputStream 和 outputStream【转】

    我们在进行Android java 开发的时候,经常会遇到各种IO流操作.IO流操作一般分为两类:字符流和字节流.以“Reader”结尾都是字符流,操作的都是字符型的数据:以“Stream”结尾的都是 ...

  2. Java基础17:Java IO流总结

    更多内容请关注微信公众号[Java技术江湖] 这是一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM.SpringBoot.MySQL.分布式.中间件.集群.Linux ...

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

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

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

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

  5. Java IO流处理

    字节流是由字节组成的;字符流是由字符组成的Java里字符由两个字节组成. 1字符=2字节JAVA中的字节流是采用ASCII编码的,字符流是采用好似UTF编码,支持中文的 Java IO流处理 面试题汇 ...

  6. Java基础之IO流

    很长时间都没有更新了,最近在补充JavaSE的一些细节部分 关于IO流的一些总结 首先要介绍的是File类,File类用于对文件和目录的一些操作 1.创建文件CreateNewFile() 2.对文件 ...

  7. Java中IO流,输入输出流概述与总结

    总结的很粗糙,以后时间富裕了好好修改一下. 1:Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入 ...

  8. Java:IO流与文件基础

    Java:IO流与文件基础 说明: 本章内容将会持续更新,大家可以关注一下并给我提供建议,谢谢啦. 走进流 什么是流 流:从源到目的地的字节的有序序列. 在Java中,可以从其中读取一个字节序列的对象 ...

  9. java IO流详解

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

随机推荐

  1. import tensorflow 报错,CentOS 升级 glibc

    问题描述: ]: import tensorflow as tf ImportError: /lib64/libc.so.: version `GLIBC_2.' not found (require ...

  2. Containerpilot 配置文件示例

    { consul: "localhost:8500", logging: { level: "INFO", format: "default" ...

  3. 关于访问asp.net网站时登录后的奇怪问题

    登录后,地址栏地址变成了 http://www.XXXX.com/(F(HDc3otfFs0wkZu4P4CjZ50Qkck2q8aekR3g6F0m_NRZRo7kt7XQ6CjAFBR4PR8kZ ...

  4. Loadrunner通过吞吐量计算每个用户需要的带宽

    Loadrunner通过吞吐量计算每个用户需要的带宽 运行一个场景,点击Analysis进行分析,使用分析报告中的Average Throughput(bytes/second)进行计算. 计算公式: ...

  5. 用Git发布版本笔记

    1.首先,如果是发布的Develop分支,先从master建立HotFix分支,提交到git并指定关联关系 (git branch --set-upstream-to=D..) 2.对H分支进行功能完 ...

  6. Python str() 函数

    Python str() 函数  Python 内置函数 描述 str() 函数将对象转化为适于人阅读的形式. 语法 以下是 str() 方法的语法: class str(object='') 参数 ...

  7. Poor Warehouse Keeper

    Poor Warehouse Keeper http://acm.hdu.edu.cn/showproblem.php?pid=4803 Jenny is a warehouse keeper. He ...

  8. Asp.net中判断是否是指定页面请求的代码示例

    //获取请求网址,非法请求,返回主页 if (Request.UrlReferrer != null) { string requstUrl = Request.UrlReferrer.Absolut ...

  9. Bom对象介绍

    1.windows对象 1.windows对象 1_1.alert:显示一段消息和确认按钮的弹出的警告框 我们平时用的alert的全称就是 window.alert("hahah" ...

  10. python作业之用户管理程序

    数据库的格式化如下 分别为姓名|密码|电话号码|邮箱|用户类型 admin|admin123.|28812341026|admin@126.com|1root|admin123.|1344566348 ...