import java.io.*;
public class Test_Create{
public static void main(String args[]){
File f1 = new File("d:/b/a/t.txt"); //如果这里使用 d:/t.txt 空文档就能创建出来。 是什么问题呢?我也测试了别的带参的createnewfile方法,还是没有理解。望指点迷津啊
if ( !f1.exists() ){
try {
System.out.println("文件不存在!创建该文件ing...");
f1.createNewFile();
System.out.println("创建成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
if(f1.isDirectory()){
System.out.println("f1是目录 目录名:" + f1.getName());
System.out.println("路径名为:" + f1.getAbsolutePath());
} else if(f1.isFile()){
System.out.println("f1是文件 文件名:"+ f1.getName());
System.out.println("路径名为:" + f1.getAbsolutePath());
System.out.println("父路径为:" + f1.getParent());
} else {
System.out.println("抛出异常!");
}
}
}
/**
此程序编译是通过的,运行就会抛出异常。还没有把createNewFile()这个函数理解啊。*/高手们,帮忙看看。
public class Test_Create{
public static void main(String args[]){
File f1 = new File("d:/b/a/t.txt"); //如果这里使用 d:/t.txt 空文档就能创建出来。 是什么问题呢?我也测试了别的带参的createnewfile方法,还是没有理解。望指点迷津啊
if ( !f1.exists() ){
try {
System.out.println("文件不存在!创建该文件ing...");
f1.createNewFile();
System.out.println("创建成功!");
} catch (IOException e) {
e.printStackTrace();
}
}
if(f1.isDirectory()){
System.out.println("f1是目录 目录名:" + f1.getName());
System.out.println("路径名为:" + f1.getAbsolutePath());
} else if(f1.isFile()){
System.out.println("f1是文件 文件名:"+ f1.getName());
System.out.println("路径名为:" + f1.getAbsolutePath());
System.out.println("父路径为:" + f1.getParent());
} else {
System.out.println("抛出异常!");
}
}
}
/**
此程序编译是通过的,运行就会抛出异常。还没有把createNewFile()这个函数理解啊。*/高手们,帮忙看看。
解决方案 »
- java 编码问题
- 研究java源代码:AtomicLong是怎么实现同步的(jdk5.0新加的特性)
- 怎么在MYECLIPSE里配置TOMCAT
- 小弟做的网站 提供几百个视频教程 + 技术文章!望多多支持!
- 谁知道JAVA中的取余运算符(%)是定义在哪儿的?
- 在Think in java 中经常看到一个对象的"reference"??这个怎么解释才算好的呢??谢谢!!
- proxool在hibernate里的用法
- 怎么编写行数统计器的程序!!!!!急~!高手请进!!高分~~~!
- 在异常中 throw 与throws有什么区别呀???
- java学习如何进阶?
- 关于界面显示错误
- 数据的追加 在线等
我想在目录 d:/b/a 下创建t.txt 如何修改呢?
File f = new File("d:/t/t.txt"); d:/t/t.txt就有两种理解,t.txt也可以是文件夹(目录),也可能是文件。如何确定呢? 比如我想创建的是目录,如何操作呢? 又或者是文件,又该如何操作呢?
当你指定的是createNewFile()创建文件,指定mkdir()时创建目录
如果要修改程序,如何修改呢?
我想在目录 d:/b/a 下创建t.txt 如何修改呢?
f1.createNewFile();
那行上加
File dir = new File("d:/b/a");
dir.makedirs();
File f1 = new File("d:"+File.separator+"b"+File.separator+"a"+File.separator+"t.txt)因为在不同的操作系统下,路径中的斜杠是不同的,在linux下是“\”,在windows下是“/”,所以会抛出异常啊,如果真的不行就在住函数前加上public static void main(String args[])throws Exception
这样就可以了
path:翻译成中文为“路径”。有绝对路径和相对路径之分,常见的概念不予解释。
file:翻译成中文为“文件”。文件和文件夹是一个相对概念(文件夹是windows中的概念,DOS中对应于目录)。文件夹是一个盒子,里面装的内容是文件,那么这个文件当然可以是一个.txt ,.doc,.jpg等形式的文件,当然也可以是一个装有其他文件的文件夹。所以file可以对应于文件和文件夹。
File f = new File("D:/test/mytest.txt");//当执行这句话后在内存的栈空间存在一个f的应用,在堆空间里存在一个mytest.txt对象。注意这个对象只含有文件的属性(如大小,是否可读,修改时间等),不包含文件的内容,所以length=0。当我们想执行对文件的操作的时候,这个时候抽象路径起作用了,比如我们想执行f.createNewFile()命令时,虚拟机会将抽象路径转化为实际的物理路径,到这个转化后的物理路径(此时是硬盘)下进行文件的创建。这时,如果在你的D盘没有test文件夹,那么不好意思啦,程序就会抛异常,如果有test文件夹,就可以创建一个mytest.txt文件了。能不能创建mytest.txt就在于这个文件上面有没有test文件夹,这也就是抽象路径在装怪了。
如果想让f引用在硬盘中把文件夹也创建出来怎么办?用f.getParentFile()求出mytest.txt上面的所有文件夹,然后在mkdirs()就搞定了。
其他的自己思考了。