20.IO流部分笔记

2018/09/06 
1.IO流 
  1.1 创建字节输出流对象,如果没有就自动创建一个
    FileOutputStram fos = new FileOutputStram("yyy.txt");
  1.2 如果想续写在第二个属性加true
     FileOutputStram fos = new FileOutputStram("yyy.txt",true);
  1.3 拷贝大文件(不推荐使用,可能导致内存溢出)
     * byte[] arr = new byte[fis.available()];
    * fis.read(arr);
    * fos.write(arr);
  1.4 定义小数组,一般是1024的整数倍
    *  write(byte[] b)
    * write(byte[] b, int off, int len)写出有效的字节个数
  1.5 BufferedInputStream和BufferedOutputStram
     * 内置了一个缓冲区(数组),会一次性从文件中读取8192个, 存在缓冲区中, 返回给程序一个
  1.6 flush()方法
    * 用来刷新缓冲区的,刷新后可以再次写出 
  1.7close()方法
     * 用来关闭流释放资源的的,如果是带缓冲区的流对象的close()方法,不但会关闭流,还会再关闭流之前刷新缓冲区,关闭后不能再写出 
    1.8 字节流写出中文的问题
      * 字节流直接操作的字节,所以写出中文必须将字符串转换成字节数组 
      * 写出回车换行 write("\r\n".getBytes());
  1.9 创建键盘录入对象
      * Scanner sc = new Scanner(System.in);

2018/09/11

1.IO序列流

  • 整合两个: SequenceInputStream(InputStream, InputStream)

    • SequenceInputStream sis = new SequenceInputStream(new FileInputStream("a.txt"), new FileInputStream("b.txt")); //将两个流整合成一个流
  • 整合多个:SequenceInputStream(Enumeration)

    • FileInputStream fis1 = new FileInputStream("a.txt"); //创建输入流对象,关联a.txt
      FileInputStream fis2 = new FileInputStream("b.txt"); //创建输入流对象,关联b.txt
      FileInputStream fis3 = new FileInputStream("c.txt"); //创建输入流对象,关联c.txt
      Vector v = new Vector<>(); //创建vector集合对象
      v.add(fis1); //将流对象添加
      v.add(fis2);
      v.add(fis3);
      Enumeration en = v.elements(); //获取枚举引用
      SequenceInputStream sis = new SequenceInputStream(en); //传递给SequenceInputStream构造
      FileOutputStream fos = new FileOutputStream("d.txt");
      int b;
      while((b = sis.read()) != -1) {
      fos.write(b);
      }

      sis.close();
      fos.close();

2.内存输出流

  • 该输出流可以向内存中写数据, 把内存当作一个缓冲区, 写出之后可以一次性获取出所有数据

    • 创建对象: new ByteArrayOutputStream()
    • 写出数据: write(int), write(byte[])
    • 获取数据: toByteArray()
  • printstram 和printwriter分别是打印字节流和字符流

3.标准输入输出流

  • 输入流只有一个
  • System.in是InputStream, 标准输入流, 默认可以从键盘输入读取字节数据
  • System.out是PrintStream, 标准输出流, 默认可以向Console中输出字符和字节数据

20.IO流部分笔记的更多相关文章

  1. JAVA.IO流学习笔记

    一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...

  2. IO流小笔记

    File file=new File ();括号里面写路径 exists()判断文件是否存在:isfile()是判断已经存在的文件是文件还是目录: mkdir()和createNewFile()区别在 ...

  3. IO流总结笔记一

    ​ IO流继承关系图 IO概述 IO流是用来处理设备上数据的输入输出. 具体设备有:硬盘,内存,键盘录入等等. IO流的具体分类: 1,根据处理的数据类型不同分为:字节流和字符流,字节流读取的最小单位 ...

  4. java中File IO流的笔记

    1.File文件的属性和操作 boolean exists( )  判断文件或目录是否存在boolean isFile( )  判断是否是文件boolean isDirectory( ) 判断是否是目 ...

  5. IO流学习笔记(一)之FileWriter与FileReader

    IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 流按照操作数据分为两种:字节流和字符流 流按流向分为:输入流和输出流 输入流和输出流是相对于 ...

  6. IO流学习笔记

    1.File类 文件和目录路径名的抽象表示形式. 4种构造方法 File(File parent, String child) File(File parent, String child) File ...

  7. IO流学习笔记(二)之BufferedWriter与BufferedReader及实例Demo

    在之前的学习笔记(http://blog.csdn.net/megustas_jjc/article/details/72853059)中,FileWriter与FileReader的Demo使用的中 ...

  8. (20)IO流之SequenceInputStream 序列流

    序列流,对多个流进行合并. SequenceInputStream 表示其他输入流的逻辑串联.它从输入流的有序集合开始,并从第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直 ...

  9. IO流总结笔记三

    ​ 字节流: 抽象基类:InputStream, OutputStream. 字节流可以操作任何数据.注意:字符流使用的数组是字符数组.Char [] chs 字节流使用的数组是字节数组.Byte [ ...

随机推荐

  1. 有banner的uid数, 有logo的uid数 , 交集数

    [len(i) for i in [banners_uid_set,logos_uid_set,banners_uid_set&logos_uid_set]] import glob impo ...

  2. BZOJ_1229_[USACO2008 Nov]toy 玩具_三分+贪心

    BZOJ_1229_[USACO2008 Nov]toy 玩具_三分+贪心 Description 玩具 [Chen Hu, 2006] Bessie的生日快到了, 她希望用D (1 <= D ...

  3. linux驱动编写(Kconfig文件和Makefile文件)

    在Linux编写驱动的过程中,有两个文件是我们必须要了解和知晓的.这其中,一个是Kconfig文件,另外一个是Makefile文件.如果大家比较熟悉的话,那么肯定对内核编译需要的.config文件不陌 ...

  4. RandomAccessFile使用场景及总结

    大家在学到Java中IO流的时候学到了各种流,对文件的各种操作.但是唯独可能对RandomAccessFile对象不会去过多的研究,那么这个到底有什么用呢? RandomAccessFile的唯一父类 ...

  5. 分享几篇有关react-native的博客

    http://segmentfault.com/a/1190000002646155 http://facebook.github.io/react-native/docs/native-module ...

  6. php 5.6 版本配置 oracle ddl

    1. Windows版PHP内置了Oracle驱动,在ext目录下:php_oci8.dllphp_oci8_11g.dllphp_pdo_oci.dllLinux上如果自己编译的话则添加下面的con ...

  7. 利用反射给JAVABEAN实例赋值

    为简化和统一,需要给javabean实例统一赋值,实现代码如下(已测试) import java.util.ArrayList; import java.util.Date; import java. ...

  8. C#基础 out传值

    public void Out(out int a, out int b) {//out相当于return返回值 //可以返回多个值 //拿过来变量名的时候,里面默认为空值 a=1; b=2; } s ...

  9. C# 访问mongodb数据库

    1.引用四个mongodb动态库MongoDB.Bson.dll,MongoDB.Driver.Core.dll,MongoDB.Driver.dll,MongoDB.Driver.Legacy.dl ...

  10. SuperSocket学习笔记(一)-一个完整的例子

    一.什么是SuperSocket 以下是作者的介绍 执行以下命令,获取SuperSocket项目 $ git clone https://github.com/kerryjiang/SuperSock ...