专栏首页noteless-1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流

-1-4 java io java流 常用流 分类 File类 文件 字节流 字符流 缓冲流 内存操作流 合并序列流

File类

•文件和目录路径名的抽象表示形式

构造方法

•public File(String pathname)

•public File(String parent,Stringchild)

•public File(File parent,Stringchild)

创建功能

•publicboolean createNewFile()

•publicboolean mkdir()

•publicboolean mkdirs()

删除功能

•publicbooleandelete()

重命名功能

•publicboolean renameTo(Filedest)

判断功能

•publicboolean isDirectory()

•publicboolean isFile()

•publicbooleanexists()

•publicboolean canRead()

•publicboolean canWrite()

•publicboolean isHidden()

基本获取功能

•public String getAbsolutePath()

•public String getPath()

•public String getName()

•public long length()

•public long lastModified()

高级获取功能

•public String[] list()

•public File[] listFiles()

IO流用来处理设备之间的数据传输

Java对数据的操作是通过流的方式

Java用于操作流的对象都在IO包中

按照数据流向

•输入流  读入数据

•输出流  写出数据

按照数据类型

•字节流

•字符流

字节流的抽象基类:

•InputStream ,OutputStream。

字符流的抽象基类:

•Reader , Writer。

注:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。

•如:InputStream的子类FileInputStream。

•如:Reader的子类FileReader。

OutputStream

•FileOutputStream

FileOutputStream的构造方法

FileOutputStream(File file)

FileOutputStream(String name)

写入数据

public void write(int b)

public void write(byte[] b)

public void write(byte[] b,int off,int len)

InputStream

•FileInputStream

            FileInputStream的构造方法

•FileInputStream(File file)

•FileInputStream(String name)

             FileInputStream的成员方法

•public int read()

•public int read(byte[] b)

字节缓冲输出流

•BufferedOutputStream

字节缓冲输入流

•BufferedInputStream

转换流

转换流的由来

•字符流与字节流之间的桥梁

•方便了字符流与字节流之间的操作

OutputStreamWriter 字符输出流

•public OutputStreamWriter(OutputStream out)

•public OutputStreamWriter(OutputStream out,String charsetName)

InputStreamReader 字符输入流

•public InputStreamReader(InputStream in)

•public InputStreamReader(InputStream in,String charsetName)

OutputStreamWriter写数据方法

•public void write(int c)

•public void write(char[] cbuf)

•public void write(char[] cbuf,int off,int len)

•public void write(String str)

•public void write(String str,int off,int len)

OutputStreamWriter读数据方法

•public int read()

•public int read(char[] cbuf)

字符流

FileWriter

FileReader

创建流对象,建立数据存放文件

•FileWriter fw = new FileWriter(“Test.txt”);

调用流对象的写入方法,将数据写入流

•fw.write(“text”);

关闭流资源,并将流中的数据清空到文件中。

•fw.close();

             FileWriter fw = null;
              try{
                  fw = new FileWriter("Test.txt");
                  fw.write("text");
              }
              catch (IOException e){
                  System.out.println(e.toString());
              }
              finally{
                  If(fw!=null)
                  try{
                      fw.close();
                  }
                  catch (IOException e){
                      System.out.println(e.toString());
                  } 
              }

建立一个流对象,将已存在的一个文件加载进流。

•FileReader fr = newFileReader(“Test.txt”);

创建一个临时存放数据的数组。

•char[] ch = new char[1024];

调用流对象的读取方法将流中的数据读入到数组中。

•fr.read(ch);

      FileReader fr = null;
        try {
            fr = new FileReader("c:\\test.txt");
            char[] buf = new char[1024];
            int len = 0;
            while ((len = fr.read(buf)) != -1) {
                System.out.println(new String(buf, 0, len));
            }
        } catch (IOException e) {
            System.out.println("read-Exception :" + e.toString());
        } finally {
            if (fr != null) {
                try {
                    fr.close();
                } catch (IOException e) {
                    System.out.println("close-Exception :" + e.toString());
                }
            }
        }

字符流缓冲

BufferedWriter

BufferedReader

特殊功能

•BufferedWriter

•void newLine()

•BufferedReader

•String readLine()

操作基本数据类型

•DataInputStream

•DataOutputStream

内存操作流

操作字节数组

•ByteArrayInputStream

•ByteArrayOutputStream

操作字符数组

•CharArrayReader

•CharArrayWrite

操作字符串

•StringReader

•StringWriter

打印流

PrintWriter

PrintStream

标准输入输出流

System类中的字段:in,out。

它们各代表了系统标准的输入和输出设备。

默认输入设备是键盘,输出设备是显示器。

System.in的类型是InputStream.

System.out的类型是PrintStream是OutputStream的子类FilterOutputStream 的子类.

随机访问流

RandomAccessFile概述

•RandomAccessFile类不属于流,是Object类的子类。但它融合了InputStream和OutputStream的功能。支持对随机访问文件的读取和写入。

合并流

SequenceInputStream概述

•SequenceInputStream类可以将多个输入流串流在一起,合并为一个输入流,因此,该流也被称为合并流。

SequenceInputStream的构造方法

•SequenceInputStream(InputStream s1, InputStream s2) 

•SequenceInputStream(Enumeration<? extends InputStream> e)

可以用于多文件的合并

序列化

序列化流

•ObjectOutputStream

反序列化流

•ObjectInputStream

编码

字符流的出现为了方便操作字符。

更重要是的加入了编码转换。

通过子类转换流来完成。

•InputStreamReader

•OutputStreamWriter

在两个对象进行构造的时候可以加入字符集。

计算机只能识别二进制数据,早期由来是电信号。

为了方便应用计算机,让它可以识别各个国家的文字。

就将各个国家的文字用数字来表示,并一一对应,形成一张表。

这就是编码表。

编码:字符串->字节数组

解码:字节数组->字符串

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • [三]基础数据类型之Integer详解

    noteless
  • 建造者模式 生成器模式 创建型 设计模式(五)

    本人的所有系列文章都是自己学习的记录过程,均有比较严格的先后顺序,如果不清楚抽象工厂模式可以先往前翻翻

    noteless
  • 责任链模式 职责链模式 Chain of Responsibility Pattern 行为型 设计模式(十七)

    责任链模式中,每个对象通过持有对下家的引用而链接起来,形成一条链条,串联起来多个处理对象。

    noteless
  • 每日一题(16)

    这是一个有点诡异的问题。程序并没有做什么特殊的事情,而是直接打印hello world。这里其实使用了java中一个鲜为人知的特性「语句标号」,可在任意语句前防...

    KEN DO EVERTHING
  • Android设计模式二

    在组件构建过程中,某些接口之间直接的依赖常常会带来很多问题,甚至根本无法实现。采用添加一层间接(稳定)接口,来隔离本来互相紧密关联的接口是一种常见的解决方案。

    爱因斯坦福
  • Java方法的嵌套与递归调用

    方法嵌套的概念其实比较好理解,就是在调用方法的过程中又遇到了方法的调用,在刚开始接触的时候虽然在逻辑上能够理解为什么运行结果是这样的,但是对于代码执行的过程还是...

    聚沙成塔
  • Java第四周总结

    开发中会使用大量相同数据类型的情况。如果使用数组来解决问题 1. 数组能够使用的方法非常少,功能方法需要程序员自己完成。 2. 数据类型单一化,不支持多种情...

    用户7073689
  • 代理模式

    mySoul
  • Java 设计模式 代理模式

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://louluan.blog.c...

    亦山
  • Mson,让JSON序列化更快

    本文由秦喆 芝任 天洲 赵鹏四位作者共同完成。 问题 我们经常需要在主线程中读取一些配置文件或者缓存数据,最常用的结构化存储数据的方式就是将对象序列化为JSON...

    美团技术团队

扫码关注云+社区

领取腾讯云代金券