文件和文件夹的建立 JAVA

1.在JAVA中新建文件夹如果我直接写publicclassTest{publicstaticvoidmain(String[]args){Filef=newFile("... 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();
}
对不起大家,我可能问题没有说清楚。我要创建一个新文件或文件夹时,必须根据兄弟结点的属性,如果兄弟结点是文件夹,则它也必须为文件夹,否则为文件。
展开
 我来答
侨宜楠u4
2010-05-18 · TA获得超过259个赞
知道小有建树答主
回答量:61
采纳率:0%
帮助的人:113万
展开全部
第一个问题:
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
qiaole123
2010-05-18 · TA获得超过3413个赞
知道大有可为答主
回答量:1408
采纳率:66%
帮助的人:973万
展开全部
哈哈,刚好我正在学习文件的操作,就给你写了一个,不知是不是你所需要的创建文件夹和文件
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+"创建成功!");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhao103804
2010-05-18
知道答主
回答量:55
采纳率:0%
帮助的人:26.9万
展开全部
你那个错是说你的路径不存在所以无法创建文件,你文件的上一级是个文件夹,应该是不存在的

我写的这个方法是不管你有多少级文件夹都可以创建,只需传一个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();
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aoxiao1231
2010-05-18
知道答主
回答量:26
采纳率:0%
帮助的人:6.9万
展开全部
真难
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式