java中的File类

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文件,

并不是在包下直接创建文件。

猜你喜欢

转载自mfcfine.iteye.com/blog/2384548