当read()方法到达java中的文件末尾时,返回什么值?
输入流类的read()方法逐字节读取给定文件的内容,并以整数形式返回读取字节的ASCII值。在读取文件时,如果到达文件末尾,则此方法返回-1。
示例
假设我们在当前目录中有一个文本文件(sample.txt),其中包含一个简单的文本“Hellowelcome”。随后的Java程序使用该read()方法逐字节读取文件的内容,并打印每个字节返回的整数值。
由于我们不检查文件read()的结尾,因此该方法到达结尾,并且输出的最后一个整数将为-1。
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class EndOfFileExample {
   public static void main(String[] args) {
      try{
         File file = new File("sample.txt");
         DataInputStream inputStream = new DataInputStream(new FileInputStream(file));
         System.out.println(file.length());
         for(int i=0; i<=file.length();i++) {
            int num = inputStream.read();
            System.out.println(num);
         }
      } catch(IOException ioe) {
         ioe.printStackTrace();
      }
   }
}输出结果
13 72 101 108 108 111 32 119 101 108 99 111 109 101 -1
