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



我通过使用完整的文件路径的不同方法获得了不同的文件。

方法1:在此方法中,我使用了文件(文件父,字符串儿童(方法。

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:在此中,我使用方法文件(字符串路径名(传递了文件的抽象路径。

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);
}}

输出2:

4
go.txt
E:

所以任何人都可以告诉我这样做的原因。实际尺寸为4。

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

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

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

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

您将File包裹在4个字节文件周围。

来自File#length()的Javadoc:

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

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

最新更新