文件和文件夹的建立 JAVA

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件和文件夹的建立 JAVA相关的知识,希望对你有一定的参考价值。

1.
在JAVA中新建文件夹
如果我直接写
public class Test
public static void main(String[]args)
File f = new File("D:/temp/1.txt");

运行后并不会在要求的目录生成文件,而我补充语句
PrintWriter out = new PrintWriter(file);(main方法抛出异常)
out.print(" ");
out.close();
却又可以。
我个人认为我没加这三句,就出现所谓的"file has never been read",所以才不能在指定目录建立一个文件。请问是这样吗?(请解释)
2.
新建文件夹:(根据一个JTree的结点,变量名为newNode)
String url = getURL(path); //返回的url的末尾为".txt"
File file;
if(newNode.getnextSibling()!=null && newNode.getnextSibling().getChildCount()>=1)
String newURL = url.substring(0, url.length()-4);
file = new File(newURL);
file.mkdir();

else
file = new File(url);

PrintWriter out = null;
try
out = new PrintWriter(file);
catch (FileNotFoundException e1)
// TODO Auto-generated catch block
e1.printStackTrace();

out.print(" ");
out.close();
file.deleteOnExit();


运行后,如果我要添加一个文件夹,会出现诸如此类的异常:
java.io.FileNotFoundException: D:\CPU Simulator\Disk\temp\temp.txt (系统找不到指定的路径。)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:179)
at java.io.FileOutputStream.<init>(FileOutputStream.java:131)
at java.io.PrintWriter.<init>(PrintWriter.java:218)
at control.TreeEditor.editTree(TreeEditor.java:72)
at modeling.TreeListener.actionPerformed(TreeListener.java:24)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6263)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6028)

请高手赐教,答案如果满意(最好带点注释),另外再加15分(我现在全部家当才35分)。出去给出的10分,还有25分。呵呵,拜托大家了!
if(newNode.getnextSibling()!=null && newNode.getnextSibling().getChildCount()>=1)
String newURL = url.substring(0, url.length()-4);
file = new File(newURL);
file.mkdir();

对不起大家,我可能问题没有说清楚。我要创建一个新文件或文件夹时,必须根据兄弟结点的属性,如果兄弟结点是文件夹,则它也必须为文件夹,否则为文件。

第一个问题:
File file =new File(String pathname);只是在内存中创建了一个File实例。pathname可以是路径也可以是文件。然后调用file.createNewFile();才会创建文件。所以不是楼主是所说的ile has never been read。
而执行PrintWriter out = new PrintWriter(file);后发现创建了文件,这是由于PrintWriter构造方法执行机制所决定的,如果文件为空,则会自动掉用file的createNewFile()方法创建一个文件(详见api PrintWriter)。所以楼主又看到了所创建的文件。异常用try catch捕获FileNotFoundException。
第二个问题:创建多级目录要用file.mkdirs();你那个只能创建一级目录。

我写个例子 经过检验的 你参考一下 多级目录的文件创建:
import java.io.*;
public class FileTest
public File fileCreate(String fileFoder, String fileName)
File foder = new File(fileFoder);
File file = new File(fileFoder+fileName);
//如果文件夹不存在,则创建文件夹
if(foder.exists()==false)
foder.mkdirs();//多级目录
//foder.mkdir();//只创建一级目录


//如果文件不存在,则创建文件
if(file.exists()==false)
try
file.createNewFile();
catch(IOException e)
e.printStackTrace();


return file;

public static void main(String [] args)
FileTest fileTest= new FileTest();
String fileFoder="D://test1//test2";
String fileName="//test_io.txt";

File file= fileTest.fileCreate(fileFoder,fileName);
System.out.println(file.getPath());



至于文件读写的内容很多 给你个参考的链接
http://www.jb51.net/article/16396.htm
参考技术A 哈哈,刚好我正在学习文件的操作,就给你写了一个,不知是不是你所需要的创建文件夹和文件
package arrays.file;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class CreateFiles
public static void main(String[] args)
createDirectory("d:/111");
createFile("d:/111/1.txt");


//创建空文件
public static void createFile(String path)
try
BufferedWriter bWriter = new BufferedWriter(new FileWriter(path));
bWriter.flush();
bWriter.close();
catch (IOException e)
e.printStackTrace();


System.out.println(path+"创建成功!");


//创建文件夹
public static void createDirectory(String path)
File file = new File(path);
file.mkdir();

System.out.println(path+"创建成功!");

参考技术B 你那个错是说你的路径不存在所以无法创建文件,你文件的上一级是个文件夹,应该是不存在的

我写的这个方法是不管你有多少级文件夹都可以创建,只需传一个path过去就OK了
就算这个路径也可以的 D:/temp/temp/temp/temp/1.txt

public class Test6

public static void main(String[] args)
String path = "D:/temp/1.txt";
new Test6().createFile(path);


public void createFile(String path)
try

int[] sum = new int[path.length()];
int j = 0;
//获得所有的/的下标
for (int i = 0; i < path.length(); i++)
if (path.charAt(i) == '/' && path.indexOf("/") != 0)
sum[j] = i;
j++;


//通过所得下标取得路径并创建文件夹
for (int i = 0; i < sum.length; i++)
if (sum[i] != 0)
String temp = path.substring(0, sum[i] + 1);
File f = new File(temp);
//判断路径是否存在,如不存在则创建
if(!f.exists())
f.mkdir();



//判断文件是否存在,如不存在则创建
File f=new File(path);
if(!f.exists())
f.createNewFile();

catch (IOException e)
// TODO Auto-generated catch block
e.printStackTrace();


参考技术C 真难

Android Studio开发环境建立aidl文件,怎么生成相应的java文件

1.AndroidStudio的aidl文件默认放在src/main/aidl目录下,aidl目录和java目录同级别。

2.在java目录上右键,创建一个aidl文件,此文件会默认生成到aidl目录下。

3.同时必须要指明包名,包名必须和java目录下的包名一致。

4.Model类必须要实现Parcelable接口!

5.然后Make一下,就会自动生成Java文件

6.此时就可以实现接口了。 

参考技术A

一,在实现Parcelable接口的类所在的包上右键New -> AIDL


二,AS会自动生成aidl文件夹以及对应的包名。接着声明所需要类。提示interface name must be unique时,可以随意命名,新建完成后再重命名。


三,点击Build -> Make Project后可生成Java文件


参考技术B   我也遇到了这个问题,按照stackoverflow的方法没解决,上两个我找到的方法吧,
1.链接在此:Android Studio下如何配置AIDL文件,先在main目录下新建一个文件夹,命名为aidl,再在该目录下新建一个包,包名跟AndroidManifest中的package同名,然后在该包下创建aidl文件,创建完之后在build/generated/source/aidl/debug下就可以见到自动生成的java文件
2.链接在此:Issue 56160 - android - Gradle Android plugin does not detect AIDL files automatically,在app目录下的build.gradle中指定aidl的目录,比如设为src/main/java,那么在该包下新建的aidl文件都会自动生成对应的java文件
另外,在aidl文件中必须指定好package,否则会编译出错
参考技术C 方法一:Android Studio下如何配置AIDL文件,先在main目录下新建一个文件夹,命名为aidl,再在该目录下新建一个包,包名跟AndroidManifest中的package同名,然后在该包下创建aidl文件,创建完之后在build/generated/source/aidl/debug下就可以见到自动生成的java文件

方法二:Issue 56160 - android - Gradle Android plugin does not detect AIDL files automatically,在app目录下的build.gradle中指定aidl的目录,比如设为src/main/java,那么在该包下新建的aidl文件都会自动生成对应的java文件
另外,在aidl文件中必须指定好package,否则会编译出错
参考技术D   
先在main目录下新建一个文件夹,命名为aidl,再在该目录下新建一个包,包名跟AndroidManifest中的package同名,然后在该包下创建aidl文件,创建完之后在build/generated/source/aidl/debug下就可以见到自动生成的java文件本回答被提问者采纳

以上是关于文件和文件夹的建立 JAVA的主要内容,如果未能解决你的问题,请参考以下文章

如何为开发和生产环境建立不同的配置文件

Android Studio开发环境建立aidl文件,怎么生成相应的java文件

解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法

java如何在linux下创建文件夹

解决Eclipse建立Maven项目后无法建立src/main/java资源文件夹的办法

sql连接建立方式