java中的File类
TestFile .java
//引入io包
import java.io.*;
//测试File类
public class TestFile {
public static void main(String[] args) {
String separator = File.separator;
String filename = "myfile.txt";
//文件分隔符separator,在Windows下是\(正斜杠),Linux下是/(反斜杠)
String directory = "mydir1" + separator + "mydir2";
//String directory = "mydir1/mydir2";
//String directory = "mydir1\\mydir2";//两个正斜杠,第一个代表转义字符,第二个是真正的分隔符
//在内存中的一个地址,硬盘中还不存在
File f = new File(directory, filename);
//如果文件已经存在
if (f.exists()) {
System.out.println("文件名:" + f.getAbsolutePath());//打印文件的绝对路径
System.out.println("文件大小:" + f.length());//文件的长度
} else {
//f的父路径,mkdirs()代表 mydir1 , mydir2 等一系列路径
/*
boolean mkdirs()
Creates the directory named by this abstract pathname, including any necessary but nonexistent parent directories.
*/
f.getParentFile().mkdirs();
try {
//创建一个新的文件
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
创建文件及文件夹成功
F:\java>javac TestFile.java F:\java>java TestFile F:\java>
F:\java\mydir1\mydir2\myfile.txt
再次运行
F:\java>javac TestFile.java
F:\java>java TestFile
文件名:F:\java\mydir1\mydir2\myfile.txt
文件大小:0
F:\java>
文件已经存在,输出文件名和文件大小
强化测试,为TestFile.java添加包路径
1.为TestFile.java添加包package bjsxt;
package bjsxt;
//引入io包
import java.io.*;
//测试File类
public class TestFile {
public static void main(String[] args) {
String separator = File.separator;
String filename = "myfile.txt";
//文件分隔符separator,在Windows下是\(正斜杠),Linux下是/(反斜杠)
String directory = "mydir1" + separator + "mydir2";
//String directory = "mydir1/mydir2";
//String directory = "mydir1\\mydir2";//两个正斜杠,第一个代表转义字符,第二个是真正的分隔符
//在内存中的一个地址,硬盘中还不存在
File f = new File(directory, filename);
//如果文件已经存在
if (f.exists()) {
System.out.println("文件名:" + f.getAbsolutePath());//打印文件的绝对路径
System.out.println("文件大小:" + f.length());//文件的长度
} else {
//f的父路径,mkdirs()代表 mydir1 , mydir2 等一系列路径
/*
boolean mkdirs()
Creates the directory named by this abstract pathname, including any necessary but nonexistent parent directories.
*/
f.getParentFile().mkdirs();
try {
//创建一个新的文件
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
2.编译java程序
F:\java>javac TestFile.java
F:\java>
3.创建bjsxt文件夹,将生成的TestFile.class文件放入bjsxt文件夹
4.运行java程序
F:\java>java TestFile 错误: 找不到或无法加载主类 TestFile F:\java>java bjsxt.TestFile 文件名:F:\java\mydir1\mydir2\myfile.txt 文件大小:0 F:\java>c
可以看到java会自动找包所对应的父路径,在创建file文件,
并不是在包下直接创建文件。