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文件,
并不是在包下直接创建文件。