-
File是一个 文件和目录路径名 的抽象表示,通过File可以查看文件的各种信息,也可以增加删除文件。
File构造器接受一个路径字符串并把它与实际文件目录映射起来,也能接受父子目录,无论是相对路径还是绝对路径
- File 对文件和目录操作的功能几乎都有如 查看读写权限,查看父子目录,创建 删除 重命名文件等等。
2 输入和输出
- 输入流 InputStream / Reader 就是把数据从某处(一般就是构造器中的对象)读到本身,再read( )到别处。
- 输出流 OutputStream / Writer 就是从本身writer( )数据写入到其他对象(构造器中的对象)
- InputStream、OutputStream 是字节流
- Reader、Writer 是字符流,一般使用字符流,再只能使用字节流解决问题的地方使用字节流。
2.1 输入流
-
InputStream :所有有关输入的流都从这继承 (抽象类),提供了输入流所具备的基本方法。因为读取的数据源(构造器中的数据源)不相同,所以产生了很多子类。
int available() 返回从该输入流中可以读取(或跳过)的字节数的估计值,而不会被下一次调用此输入流的方法阻塞。 void close() 关闭此输入流并释放与流相关联的任何系统资源。 void mark(int readlimit) 标记此输入流中的当前位置。 boolean markSupported() 测试这个输入流是否支持 mark和 reset方法。 abstract int read() 从输入流读取数据的下一个字节。 int read(byte[] b) 从输入流读取一些字节数,并将它们存储到缓冲区 b 。 int read(byte[] b, int off, int len) 从输入流读取最多 len字节的数据到一个字节数组,从数组off开始写入。 void reset() 将此流重新定位到上次在此输入流上调用 mark方法时的位置。 long skip(long n) 跳过并丢弃来自此输入流的 n字节数据。
- ByteArrayInputSteram( byte[ ] b) :从缓冲区(byte[ ])读取数据,可以把b中的字节read出去。
-
FileInputStream(File / String ):可提供一个File,或者 文件路径String 或者(
FileDescriptor)给构造器 ,从文件中读数据,找不到文件报异常。 - PipedInputStream() :管输入道流 用来和管道输出流对接,构造器接受一个PipedOutputStream或者同时指定int值为缓冲区的大小。
-
典型地使用方法,在一个线程中数据从
PipedInputStream读入,此数据是由另一个线程写入到对应的PipedOutputStream中。 单线程下使用可能还会造成死锁。
-
- SequenceInputStream:将多个输入流连接起来。它从一个有序的输入流集合开始,从第一个读取到文件的结尾,然后从第二个文件读取,依此类推,直到最后一个输入流达到文件的结尾。
- FilterInputStream :装饰器,其他输入流提供有用功能。装饰器的构造器接收的都是流
- DataInputStream(InputStream in):可以从流中按基本数据类型和String读取数据,上面的只能按字节读取,输出也只能输出int 或者 byte。(字节流为了解决字符的问题产生)
View Code
int read(byte[] b) boolean readBoolean() byte readByte() char readChar() double readDouble() float readFloat() int readInt() long readLong() short readShort() String readUTF(string)
- DataInputStream(InputStream in):可以从流中按基本数据类型和String读取数据,上面的只能按字节读取,输出也只能输出int 或者 byte。(字节流为了解决字符的问题产生)