file.length();
弱弱的问一下,假如文件的大小超出了long型变量的存储范围应该怎么办呢?

解决方案 »

  1.   

    RandomAccessFile对于过大文件,不会一次性全部读出,而是一次一小段。
    //------------------------import help.Functions;
    import java.io.RandomAccessFile;public class A {
      public static void main(String[] args) {
        try {
          long start = Runtime.getRuntime().freeMemory();
          RandomAccessFile rF = new RandomAccessFile("D:/abc.zip", "r");
          for (int i = 0; i < 100; i++) {
            if ((i % 16) == 0)
              System.out.print("\r\n");
            System.out.print(Functions.getByteHexStr(rF.readByte()) + " ");
          }
          long end = Runtime.getRuntime().freeMemory();
          System.out.println("\n\nused  menory:" + (start - end) / 1024 + "KB");
          rF.close();
        } catch (Exception e) {
          e.printStackTrace();
        }
      }
    }
      

  2.   

    long的範圍是多少,有這麼大的文件!?
      

  3.   

    这是int的
    long的是9223372036854775807还没见过这么大的文件……      =..=
      

  4.   

    读文件肯定需要你分块读了...不然你总有一天会遇到OUT OF MEMORY
      

  5.   

    java.math 
    Class BigDecimal