关于 File 类的 creatNewFile和mkdir方法的疑惑??

azhu520 2004-12-26 11:55:28
教材中关于creatNewFile方法的介绍说该方法无法自动判断此方法创建的File是否代表文件,即使抽象路径为“myDir"仍会建立一个名为“myDir"的文件(无扩展名)
而关于mkdir方法也说了该方法无法自动判断此方法创建的File是否代表目录,即使抽象路径为“myFile.txt"仍会建立一个名为“myFile.txt"的目录。

下面这段代码:
String dirName = "c:/JunkData";
String fileName ="proverbs.txt"
File output =new File(dirName,fileName)
output.creatNewFile()

if(!output.isFile())
System.out.println("Creating"+output.getPath()+"failed."

我想问两个问题:
(1)为何用了creatNewFile方法还不能保证创建出来的是文件,用了mkdir方法也不能保证创建出来的是目录??
(2) 如果我必须创建一个”c:/JunkData/proverbs.txt“文件,而用if(!output.isFile())返回的是false我该怎么办??
...全文
486 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sourceid 2004-12-28
  • 打赏
  • 举报
回复
//把/root/b换成c:/JunkData
import java.io.*;

public class DeleteFile{

public DeleteFile()
{
try{
//File file=new File("test");
//file.delete();
String dirName = "/root/b";//"c:/JunkData";
String fileName ="proverbs.txt";
File output =new File(dirName);
output.mkdir();
File output1=new File("/root/b/proverbs.txt");
output1.createNewFile();

if(!output1.isFile())
System.out.println("Creating"+output.getPath()+"failed.");

}catch(Exception e){
e.printStackTrace();
}
}

public static void main(String args[])
{
DeleteFile delete=new DeleteFile();
System.exit(0);
}
}
azhu520 2004-12-27
  • 打赏
  • 举报
回复
楼上的,我的问题是:

(1)为何用了creatNewFile方法还不能保证创建出来的是文件,用了mkdir方法也不能保证创建出来的是目录??

(2) 如果我必须创建一个”c:/JunkData/proverbs.txt“文件,而用if(!output.isFile())返回的是false我该怎么办??
jFresH_MaN 2004-12-27
  • 打赏
  • 举报
回复
其实很简单
creatNewFile是创建一个文件,就是有后缀名的
mkdir是创建一个文件夹
懂吗?
azhu520 2004-12-27
  • 打赏
  • 举报
回复
汗,一楼的代码,看不懂,有没有能帮我解决疑惑的朋友啊??

急盼指点!!
zedk928 2004-12-27
  • 打赏
  • 举报
回复
一楼的贴代码贴的太过了
iforem 2004-12-27
  • 打赏
  • 举报
回复
(1)为何用了creatNewFile方法还不能保证创建出来的是文件?
--------------------------
如果创建成功,能保证是文件吧

(2)
如果c:/JunkData路径不存在的话,createNewFile会抛出异常

kaymo 2004-12-27
  • 打赏
  • 举报
回复
java文件操作大全




文件的建立/??与?除
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>文件的建立、??与?除</title>
</head>
<body>
<%
String path=request.getRealPath("");
//out.println(path);
File f=new File(path,"File.txt");
//out.println(f);
//out.println(f.exists());

if(f.exists()){//??File.txt是否存在
f.delete();//?除File.txt文件
out.println(path + "\\File.txt 存在,已?除。");
}else{
f.createNewFile();//在当前目?下建立一个名?File.txt的文件
out.println(path + "\\File.txt 不存在,已建立。");//?出目前所在的目?路径
}
%>

目?的建立/??与?除
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>目?的建立/??与?除</title>
</head>
<body>
<%
String path=request.getRealPath("");
path=path + "\\Sub";//将要建立的目?路径
File d=new File(path);//建立代表Sub目?的File?象,并得到它的一个引用
if(d.exists()){//??Sub目?是否存在
d.delete();
out.println("Sub目?存在,已?除");
}else{
d.mkdir();//建立Sub目?
out.println("Sub目?不存在,已建立");
}
%>
</body>
</html>


如何在JSP中?理虚?目?
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>JSP中如何?理虚?目?</title>
</head>
<body>
取得虚?目???的磁?路径<br/>
Web站点主目?的位置?<font color=#ff0000><%=request.getRealPath("/")%></font><br/>
JSP网?所在的目?位置<font color=#ff0000><%=request.getRealPath("./")%></font><br/>
JSP网?所在目?上一?目?的位置<font color=#ff0000><%=request.getRealPath("../")%></font><br/>
</body>
</html>


文件属性的取得
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.util.Date,java.io.*"%>
<html>
<head>
<title>文件属性的取得</title>
</head>
<body>
<%
String path=request.getRealPath("/");
File f=new File(path,"ReadData.txt");
if(f.exists()){
%>
<%=f.getName()%>的属性如下:<br/><br/>
文件?度?:<%=f.length()%>
<%=f.isFile()?"是文件":"不是文件"%><br/>
<%=f.isDirectory()?"是目?":"不是目?"%><br/>
<%=f.canRead()?"可?取":"不可?取"%><br/>
<%=f.canWrite()?"可写入":"不可写入"%><br/>
<%=f.isHidden()?"是?藏文件":"不是?藏文件"%><br/>
文件的最后修改日期?:<%=new Date(f.lastModified())%><br/>
<%
}else{
f.createNewFile();//在当前目?下建立一个名?ReaData.txt的文件
%>
<%=f.getName()%>的属性如下:<br/><br/>
文件?度?:<%=f.length()%>
<%=f.isFile()?"是文件":"不是文件"%><br/>
<%=f.isDirectory()?"是目?":"不是目?"%><br/>
<%=f.canRead()?"可?取":"不可?取"%><br/>
<%=f.canWrite()?"可写入":"不可写入"%><br/>
<%=f.isHidden()?"是?藏文件":"不是?藏文件"%><br/>
文件的最后修改日期?:<%=new Date(f.lastModified())%><br/>
<%
}
%>
</body>
</html>


取出目?中文件的方法
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>取出目?中文件的方法--列出目?中的文件</title>
</head>
<body>
<%
String path=request.getRealPath("/");
File d=new File(path);//建立当前目?中文件的File?象
File list[]=d.listFiles();//取得代表目?中所有文件的File?象数?
out.println("<font color=#ff0000>" + path + "目?下的文件:</font><br/>");
for(int i=0;i<list.length;i++){
if(list<I>.isFile()){
out.println(list<I>.getName() + "<br/>");
}
}
out.println("<br/><font color=#ff0000>" + path + "目?下的目?:</font><br/>");
for(int i=0;i<list.length;i++){
if(list<I>.isDirectory()){
out.println(list<I>.getName() + "<br/>");
}
}
%>
</body>
</html>


判断是否?空白文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>判断是否?空白文件</title>
</head>
<body>
<%
String path=request.getRealPath("/");
out.println(path);
FileReader fr=new FileReader(path + "\\AtEnd.txt");//建立FileReader?象,并?例化?fr
//?FileReader?生成的?象使用read()方法,可以从字符流中?取下一个字符。
if(fr.read()==-1)//判断是否已?到文件的?尾
{
out.print("AtEnd.txt文件中没有数据<br/>");
}else{
out.println("AtEnd.txt文件中有数据");
}
fr.close();
%>
</body>
</html>


?取所有的文件数据
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*,java.lang.*"%>
<html>
<head>
<title>?取所有的文件数据</title>
</head>
<body>
<%
String path=request.getRealPath(".");
FileReader fr=new FileReader(path + "\\ReadData.txt");
//??在于?取?程中,要判断所?取的字符是否已?到了文件的末尾,并且?个字符是不是文件中的断行符,即判断?字符?是否?13。
int c=fr.read();//从文件中?取一个字符
//判断是否已?到文件?尾
while(c!=-1){
out.print((char)c);//?出?到的数据
c=fr.read();//从文件中???取数据
if(c==13){//判断是否?断行字符
out.print("<br/>");//?出分行??
fr.skip(1);//略?一个字符
//c=fr.read();//?取一个字符
}
}
fr.close();
%>
</body>
</html>


一行一行?取数据
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>文件?取</title>
</head>
<body>
<%
String path=request.getRealPath("");//取得当前目?的路径
FileReader fr=new FileReader(path + "\\file\\inc\\t.txt");//建立FileReader?象,并?例化?fr
BufferedReader br=new BufferedReader(fr);//建立BufferedReader?象,并?例化?br
String Line=br.readLine();//从文件?取一行字符串
//判断?取到的字符串是否不?空
while(Line!=null){
out.println(Line + "<br/>");//?出从文件中?取的数据
Line=br.readLine();//从文件中???取一行数据
}
br.close();//??BufferedReader?象
fr.close();//??文件
%>
</body>
</html>


略?文件中的字符不?取
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>略?字?不?取</title>
</head>
<body>
<%
String path=request.getRealPath(".");
FileReader fr=new FileReader(path + "\\ReadData.txt");
fr.skip(2);//跳?2个字?
int c=fr.read();//?取一个字?
while(c!=-1){
out.print((char)c);
c=fr.read();
}
fr.close();
%>
</body>
</html>


将数据写入文件
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>将数据写入文件</title>
</head>
<body>
<%
String path=request.getRealPath(".");
FileWriter fw=new FileWriter(path + "\\WriteData.txt");//建立FileWriter?象,并?例化fw
//将字符串写入文件
fw.write("大家好!");
fw.write("本?是《JSP?程技巧》");
fw.write("?多多指教!");
fw.write("email:stride@sina.com");
fw.close();

FileReader fr=new FileReader(path + "\\WriteData.txt");
BufferedReader br=new BufferedReader(fr);//建立BufferedReader?象,并?例化?br
String Line=br.readLine();
//?取一行数据
out.println(Line + "<br/>");
br.close();//??BufferedReader?象
fr.close();
%>
</body>
</html>


将写入文件的数据分行
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.io.*"%>
<html>
<head>
<title>将写入文件的数据分行</title>
</head>
<body>
<%
String path=request.getRealPath(".");
FileWriter fw=new FileWriter(path + "\\WriteData.txt");
BufferedWriter bw=new BufferedWriter(fw);
bw.write("大家好!");
bw.write("本?是《JSP?程技巧》。");
bw.newLine();//断行
bw.write("?多多指教!");
bw.newLine();//断行
bw.write("email: stride@sina.com");
bw.flush();//将数据更新至文件
fw.close();//??文件流
out.println("写入文件内容?:<br/>");
FileReader fr=new FileReader(path + "\\WriteData.txt");
BufferedReader br=new BufferedReader(fr);
String Line=br.readLine();//?取一行数据
while(Line!=null){
out.println(Line + "<br/>");
Line=br.readLine();
}
fr.close();
%>
</body>
</html>

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧