java编程思想 I/O 简单阅读

java.io.File 类 在java中不是指的一个文件,它既能够代表一个特定文件的名称,又能够代表一组文件的名称。如果代表的事一个文件集,那么可以调用list(),返回一个字符数组,这个数组可能是某个目录的名称也可以是一个文件的名称。

         File file = new File(".");
        String[] list = file.list();
        System.out.println(Arrays.toString(list));
//[.idea, CollectionProject, out, pom.xml, src, StuProject1.iml, target]
      String[] list  = file.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                if (name.equals("out")){
                    return true;
                }else{
                    return false;
                }
            }
        });
        //可以在list中加入过滤的接口 这里只会输出out目录

java类库中I/O分为读写两部分。InputStream和Reader派生而来的类都有read(),OutputStream和Writer派生而来的类都有writer()方法。用于单个字节或者字节数组。

FileDescriptor表示文件来说:当FileDescriptor表示某文件时,我们可以通俗的将FileDescriptor看成是该文件。但是,我们不能直接通过FileDescriptor对该文件进行操作;若需要通过FileDescriptor对该文件进行操作,则需要新创建FileDescriptor对应的FileOutputStream,再对文件进行操作。
FileDescriptor可以通过out.getFD()以及fileInputStream.getFD()来获取。

功能使用说明
ByteArrayInputStream允许将内存缓存区当做InputStream使用构造参数(缓冲区),字节将从缓冲区中取出
StringBufferInputStream将String转换成InputStream已经被抛弃官方推荐StringReader
FileInputStream文件中读取信息构造参数 字符串表示 文件路径 文件夹 文件名或者FileDescriptor
PipedInputStreamPipedOutputStream一起形成管道作为线程的数据来源
SequenceInputStream将两个输入流合并成一个输入流构造器Enumeration和两个InputStream
FilterInputStream抽象类,作为装饰器的接口,其中装饰器为其他InputStream类提供有用的功能这是一个抽象类,有很多具体类

OutputStream类型 决定输出所要去的目标。

功能使用说明
ByteArrayOutputStream在内存中创建缓冲区,所有送往流的数据都要放置在缓存区用于指定数据的目的地,可以构造的时候指定缓存区的大小
FileOutputStream将信息写至文件参数可以是文件名、文件以及FileDescriptor
PipedOutputStream管道的理解还是太浅需要以后专门理解用于多线程
FilterOutputStream作为装饰器接口抽象类,用于装饰更多的输出流功能

Reader与Writer

inputStream与OutputStream是面向byte而Reader与Writer面向char
InputStreamReader与OutputStreamWriter可以将inputStream与OutputStream转换为reader与writer
他们比原来的面向字节的流操作速度更快。
读取一行的操作最好用Reader原来的DataInputStream已经弃用。

RandomAccessFile

RandomAccessFile 不是reader或者inputStream的子类,他能在文件的任意位置做读写操作。构造器第一个标识文件路径,第二个标识打开权限 r只读 w只写 rw又读又写

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值