File 对象

InputStream

InputStream是Java标准库提供的最基本的输入流 ( 输入内存 )

  • int read()

    这个方法会读取输入流的下一个字节,并返回字节表示的int值(0~255)。如果已读到末尾,返回-1表示不能继续读取了


  • int read(byte[] b):读取若干字节并填充到byte[]数组,返回读取的字节数
  • int read(byte[] b, int off, int len):指定byte[]数组的偏移量和最大填充数

    利用上述方法一次读取多个字节时,需要先定义一个byte[]数组作为缓冲区,read()方法会尽可能多地读取字节到缓冲区, 但不会超过缓冲区的大小。read()方法的返回值不再是字节的int值,而是返回实际读取了多少个字节。如果返回-1,表示没有更多的数据了

OutputStream

OutputStream是Java标准库提供的最基本的输出流 (从内存输出)

  • void write(int b)

    这个方法会写入一个字节到输出流。要注意的是,虽然传入的是int参数,但只会写入一个字节,即只写入int最低8位表示字节的部分(相当于b & 0xff

  1. public void writeFile() throws IOException {
  2. OutputStream output = new FileOutputStream("out/readme.txt");
  3. output.write(72); // H
  4. output.write(101); // e
  5. output.write(108); // l
  6. output.write(108); // l
  7. output.write(111); // o
  8. output.close();
  9. }
  • void write(byte[])
    1. public void writeFile() throws IOException {
    2. OutputStream output = new FileOutputStream("out/readme.txt");
    3. output.write("Hello".getBytes("UTF-8")); // Hello
    4. output.close();
    5. }