美文网首页
Java学习笔记8

Java学习笔记8

作者: wangmin | 来源:发表于2016-01-30 14:52 被阅读59次

Java输入输出

File类代表java.io包下操作文件或者目录的类。

File类的list方法中可以接受一个FilenameFilter参数,通过该参数可以只列出符合条件的文件。


JavaIO流
流的分类:
按照输入与输出分类: 输入流和输出流:

  • InputStream && Reader 作为输入流的基类
  • OutputStream && Writer 作为输出流的基类

他们都是一些抽象基类,无法直接创建对象。
还可以分成字节流和字符流

  • InputStream && OutputStream 是字节流
  • Reader && Writer 是字符流

字节流和字符流
InputStream && Reader 都代表输入流,只不过前者是字节输入流后者是字符输入流。两者提供的方法都很类似:
InputStream提供的方法:

  • int read() 读取一个字节,并返回该字节
  • int read(byte[] b) 读取b.length个字节放在b中,返回实际读取的字节数
  • int read(byte[] b, int off, int len) 读取len长度的数据放入以off开头的b数组中。返回实际读取的字节数。

Reader提供的方法:

  • int read() 读取一个字符,并返回该字符
  • int read(char[] buff) 同上
  • int read(char[] buff, int off, int len) 同上

由于InputStream && Reader都是字节流,是抽象基类,不能创建实例,但是其对对应的FileInputStream 和 FileReader都是操作文件的。

OutputStream && Writer 同上:

  • void write(int c)
  • void write(byte[]/char[] buff)
  • void write(byte[]/char[] buff, int off, int len)

在使用输入输出流的时候不要忘记关闭流。

节点流在处理流的时候比较麻烦,一般都是使用包装流将节点流包装成处理流,这样就可以方便的使用。比如使用PrintStream来包装OutputStream。

FileOutputStream fos = new FileOutputStream("test.txt");
PrintStream ps = new PrintStream(fos);
ps.println("hello this is a test");

在最后关闭流的时候,首先应该关闭处理流,然后再关闭节点流。

因此进行输入输出的内容是文本内容,则应该考虑使用字符流,如果进行输入输出的内容是二进制内容,则应该考虑的是使用字节流。

同时java还提供了两个转换流,将字节流转换成字符流,InputStreamReader 将字节输入流转换成字符输入流,OutputStreamWriter将字节输出流转成字符输出流。

RandomAccessFile它支持随机访问,它可以跳转到程序的任意位置进行读写。因此可以在文件的末尾追加文件内容。

long getFilePointer() 返回文件记录指针的当前位置 void seek(long pos)将文件记录指针定位到pos位置。

相关文章

  • Java8学习笔记目录

    Java8学习笔记 -- 接口的默认方法与静态方法 Java8学习笔记 -- Lambda表达式,Function...

  • Java 8 新特性

    Java 8 新特性 声明:java8新特性系列为个人学习笔记,参考地址点击这里,侵删!! Java 8 (又称为...

  • Java8学习笔记-1

    Java8学习笔记-1序在java11即将面世的时候,终于开始行动学习java8的特性。目前没有机会实践,只是跟着...

  • 2018-10-28

    Java8学习笔记-1序在java11即将面世的时候,终于开始行动学习java8的特性。目前没有机会实践,只是跟着...

  • java/android 设计模式学习笔记(8)---桥接模式

    java/android 设计模式学习笔记(8)---桥接模式 【备注】只用于个人收藏

  • 2018-09-11

    Java学习笔记(一) 第一次写作。这几天看了Java8实战,感觉有必要写写!Java 8 发布至今也已经好几年过...

  • 史上最详尽 Java 8 集合类 HashMap : 底层实现和

    史上最详尽 Java 8 集合类 HashMap : 底层实现和原理学习笔记(源码解析) Java中Map接口集合...

  • 默认方法

    默认方法 声明:java8新特性系列为个人学习笔记,参考地址点击这里,侵删!! Java 8 新增了接口的默认方法...

  • Stream API

    Stream 声明:java8新特性系列为个人学习笔记,参考地址点击这里,侵删!! Stream API Java...

  • Java 8 学习笔记

    第一章 为什么要关心Java 8 使用Stream库来选择最佳低级执行机制可以避免使用Synchronized(同...

网友评论

      本文标题:Java学习笔记8

      本文链接:https://www.haomeiwen.com/subject/ekajkttx.html