字节流 (Reader,Writer)

    输入流  FileReader

      

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

  

    输出流  FileWriter

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

  

   高效流    BufferedReader   BufferedWriter

  1. public class Demo {
  2. public static void main(String[] args) throws IOException {
  3. //fileReaderDemo();
  4. FileReader fr=new FileReader("b.txt");
              //创建高效输入字符流对象
  5. BufferedReader br=new BufferedReader(fr);
  6. //创建输出流对象
  7. FileWriter fw=new FileWriter("a.txt");
  8. BufferedWriter bw=new BufferedWriter(fw);
  9. char[] ch=new char[1024];
  10. String len;
  11. while((len=br.readLine())!=null){//读数据
  12. //写出数据
  13. bw.write(len);
  14. bw.newLine();
  15. bw.flush();
  16. }
  17. //关闭流
  18. br.close();
  19. bw.close();
  20. }
  21. }

字符流  (InputStream,OutputStream)

    输入流  FileInputStream

      

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

    输出流 FileOutputStream

  1. public class Demo {
  2. public static void main(String[] args) throws IOException {
  3. //fileReaderDemo();
  4. //method01();
  5. FileInputStream fis=new FileInputStream("b.txt");
  6. FileOutputStream ios=new FileOutputStream("a.txt");
  7. int len;
  8. while ((len=fis.read())!=-1) {
  9. ios.write(len);
  10. }
  11. fis.close();
  12. ios.close();
  13. }
  14. }

  

    高效流

  1. public class Demo {
  2. public static void main(String[] args) throws IOException {
  3. //fileReaderDemo();
  4. //method01();
  5. FileInputStream fis=new FileInputStream("b.txt");
  6. BufferedInputStream bis=new BufferedInputStream(fis);
  7. FileOutputStream ios=new FileOutputStream("a.txt");
  8. BufferedOutputStream bos=new BufferedOutputStream(ios);
  9. byte[] b=new byte[1024];
  10. int len;
  11. while ((len=bis.read(b))!=-1) {
  12. bos.write(b,0,len);
  13. bos.flush();
  14. }
  15. fis.close();
  16. ios.close();
  17. }
  18. }

  

转换流

    输入流      InputStreamReader

    输出流      outputStreamWriter

  1. public class Demo {
  2. public static void main(String[] args) throws IOException {
  3. //fileReaderDemo();
  4. //method01();
  5. FileInputStream fis=new FileInputStream("b.txt");
  6. InputStreamReader isr=new InputStreamReader(fis);//转化为字符流 转换输入流
  7. BufferedReader br=new BufferedReader(isr);//包装为高效流
  8. FileOutputStream ios=new FileOutputStream("a.txt");//转化为字符流 转换输出流
  9. OutputStreamWriter osw=new OutputStreamWriter(ios);//包装为高效流
  10. BufferedWriter bw=new BufferedWriter(osw);
  11. String len;
  12. while ((len=br.readLine())!=null) {
  13. bw.write(len);
  14. bw.newLine();
  15. bw.flush();
  16. }
  17. bw.close();
  18. br.close();
  19. }

  

标准流

    输入流

  1. public class Demo {
  2. public static void main(String[] args) throws IOException {
  3. //标准输入流
  4. InputStream in = System.in;
  5. InputStreamReader fis=new InputStreamReader(in);
  6. int len;
  7. while ((len=fis.read())!=-1) {
  8. System.out.print((char)len);
  9. }
  10. fis.close();
  11. }
  12. }

    输出流

  1. public class Demo {
  2. public static void main(String[] args) throws IOException {
  3. PrintStream out = System.out;
  4. InputStreamReader fis=new InputStreamReader(new FileInputStream("a.txt"));
  5. OutputStreamWriter osw=new OutputStreamWriter(out);
  6. int len;
  7. while((len=fis.read())!=-1){
  8. osw.write(len);//输出到控制台
  9. }
  10. fis.close();
  11. osw.close();
  12. }
  13. }

输出流   (不能写出)

    输入流   PrintWriter(父类为Writer)

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

  

对象流   (序列化)

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

    输入流 ()

  1. public class ObjectTest {
  2. public static void main(String[] args) throws IOException, Exception {
  3. ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(
  4. "d.txt"));
  5. ArrayList<Student> array = new ArrayList<Student>();
  6. Student s1 = new Student("赵云", 15);
  7. Student s2 = new Student("张飞", 15);
  8. array.add(s1);
  9. array.add(s2);
  10. oos.writeObject(array);//序列化过程
  11. oos.close();
  12. ObjectInputStream ois = new ObjectInputStream(new FileInputStream(//反序列化
  13. "d.txt"));
  14. ArrayList<Student> arrays = (ArrayList<Student>) ois.readObject();
  15. for (Student student : arrays) {
  16. System.out.println(student);
  17. }
  18. }
  19. }

  

  1. public class Student implements Serializable {
  2. /**
  3. *
  4. */
  5. private static final long serialVersionUID = -3919560601713535195L;
    // serialVersionUID 用来标识类的唯一性 它是根据类的内容计算出来的 如果写入和读出的类的id不一致 则会报错
  6. String name;
  7. int age;
  8. String sex;
  9.  
  10. public Student(String name,int age){
  11. this.name=name;
  12. this.age=age;
  13. }
  14. @Override
  15. public String toString() {
  16. return "Student [name=" + name + ", age=" + age + "]";
  17. }
  18.  
  19. }

  

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

  

  1. 解决方案:
  2. 给类进行唯一标识
  3. 让类自动生成 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. Nagios自定义扩展

    原理:监控端通过check_nrpe把要监控的指令发送给被监控端,被监控端在本机执行监控任务,并把执行的结果发送回监控端. 如何扩展Nagios,以实现自定义监控? 借助插件进行的每一次有效的Nagi ...

  2. dstat 性能监测工具

    dstat 是一个可以取代vmstat,iostat,netstat和ifstat这些命令的多功能产品.dstat克服了这些命令的局限并增加了一些另外的功能,增加了监控项,也变得更灵活了.dstat可 ...

  3. 代码重构:用工厂+策略模式优化过多的if else代码块

    最近在工作中优化了一段冗余的if else代码块,感觉对设计模式的理解和运用很有帮助,所以分享出来.鉴于原代码会涉及到公司的隐私,因此就不贴出来了.下面以更加通俗易懂的案例来解析. 假如写一个针对员工 ...

  4. JavaScript实现AOP(面向切面编程,装饰者模式)

    什么是AOP? AOP(面向切面编程)的主要作用是把一些跟核心业务逻辑模块无关的功能抽离出来,这些跟业务逻辑无关的功能通常包括日志统计.安全控制.异常处理等.把这些功能抽离出来之后, 再通过“动态织入 ...

  5. T分布(T-Distribution)

    1.What is the T Distribution? T分布(也叫Student 's T分布)是一组与正态分布曲线几乎相同的分布,只是更短更胖一点.当有小样本时,使用t分布而不是正态分布.样本 ...

  6. Dubbo 分布式服务框架

    要想了解Dubbo是什么,我们不防先了解它有什么用. 使用场景:比如我想开发一个网上商城项目,这个网上商城呢,比较复杂,分为pc端web管理后台,微信端销售公众号,那么我们分成四个项目,pc端网站,微 ...

  7. 使用JS伪造Post请求

    [使用JS伪造Post请求] 提到伪造Post请求,首先想到的是构造HTTP包.但实际上有一种更简单的方法,构造HTML FORM表单,使用js进行提交.如下:

  8. 格式化java8 LocalDateTime

    DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss", Locale.CHINA).format(time1);

  9. 第十章 泛型程序设计与C++标准模板库 泛型程序设计及STL的结构

  10. PHP的zip、unzip类详解

    1.打开一个ZIP包,用于读取.写入或修改 open(string $filename [, int $flags]) $filename - 文件名 $flags - 打开模式 ZIPARCHIVE ...