通过更改指定文件路径的方法来获取不同的文件大小

时间:2017-05-31 10:08:01

标签: java

我通过使用传递完整文件路径的不同方法获得不同大小的文件。

方法1:在这个方法中我使用了File(File parent,String child)方法。

package udacity;
import java.util.Scanner;
import java.io.File;
public class fileandmethods {
    public static void main(String[] args)
    {
        File name= new File("E:/");
    File filename= new File(name,"go.txt");

    String alpha= filename.getName();
    String alpha1= filename.getParent();
    System.out.println(name.length());
    System.out.println(alpha);
    System.out.println(alpha1);

}}

输出:

4096
go.txt
E:\

方法2:在此我使用方法File(String pathname)传递了文件的抽象路径。

package udacity;
import java.util.Scanner;
import java.io.File;
public class fileandmethods {
    public static void main(String[] args)
    {
    File filename= new File("E:/go.txt");
    File name= new File("E:/go.txt");
    String alpha= filename.getName();
    String alpha1= filename.getParent();
    System.out.println(name.length());
    System.out.println(alpha);
    System.out.println(alpha1);

}}

OUTPUT2:

4
go.txt
E:\

任何人都可以告诉我原因。实际大小为4。

1 个答案:

答案 0 :(得分:4)

我的猜测是,当你以这种方式创建文件时:

File name= new File("E:/");

您在File驱动器的根目录周围包裹了E:。但是,当你这样做时:

File name= new File("E:/go.txt");

你在一个4字节的文件周围包裹了File

来自File#length()的Javadoc:

  

返回此抽象路径名表示的文件的长度。如果此路径名表示目录,则返回值未指定。

因此,您看到的文件的4字节大小似乎是准确的,但E:/的大小是"未指定,"意思是我们不能依赖这个价值。