我通过使用完整的文件路径的不同方法获得了不同的文件。
方法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:/
的大小是"未指定的",这意味着我们不能依靠此值。