为什么用length方法获得的文件长度总为0

starli22 2007-06-10 01:49:30
代码如下:
import java.io.*;


public class Shiyan13B {


public static void main(String[] args)throws IOException {
File Newfile =new File("e:\\new.txt");
Newfile.createNewFile();

FileOutputStream OutFile= new FileOutputStream("e:\\new.txt");
BufferedOutputStream outs=new BufferedOutputStream(OutFile);
DataOutputStream out=new DataOutputStream(outs);
File file= new File("d:\\");
String []name=file.list();
File []Subfile=file.listFiles();
for(int i=0;i<name.length;i++){

if(Subfile[i].isDirectory()){

String []tmp=Subfile[i].list();
for(int stmp=0;stmp<tmp.length;stmp++){
System.out.println("\t\t"+tmp[stmp]);
}
}
else
System.out.println("\t"+name[i]);
}
String []Textname =file.list(new FileText());
for(int i=0;i<Textname.length;i++){
File tmp_file=new File(Textname[i]);
//System.out.println("\t"+Textname[i]);
System.out.println("文件名:"+tmp_file.getName());
System.out.println("文件大小:"+tmp_file.length()+"字节");
System.out.println("绝对路径:"+tmp_file.getAbsolutePath());
}

for(int i=0;i<Subfile.length;i++){
if(Subfile[i].isDirectory()){
;
String []tmp_Text=Subfile[i].list(new FileText());
for(int k=0;k<tmp_Text.length;k++){
File tmp_file=new File(tmp_Text[k]);

System.out.println("文件名:"+tmp_file.getName());
System.out.println("文件大小:"+tmp_file.length()+"字节");
System.out.println("绝对路径:"+tmp_file.getAbsolutePath());
}
}

}
out.close();
}

}
class FileText implements FilenameFilter{
public boolean accept(File dir,String s){
if(s.endsWith(".txt"))
return true;
else
return false;
}

}
功能是想列出指定目录的文件与子目录,并将该目录及其子目录下所有txt文件的路径名、文件名、文件大小等信息保存到指定的文件中。可是结果显示文件大小总是为0字节.
还有如何将文件的信息保存到指定文件.
...全文
1554 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
starli22 2007-06-12
  • 打赏
  • 举报
回复
先是下载了一个英文版的api,看不懂.换了个中文版的好多了.谢谢各位了
believefym 2007-06-12
  • 打赏
  • 举报
回复
看api
starli22 2007-06-11
  • 打赏
  • 举报
回复
请问如何直接用FileWriter的write方法写输出文件信息到指定文件,试了很多次都不行
starli22 2007-06-10
  • 打赏
  • 举报
回复
请问如何直接用FileWriter的write方法写输出文件信息到指定文件,试了很多次都不行
believefym 2007-06-10
  • 打赏
  • 举报
回复
写入文件不是很简单的,用FileWrite直接write
starli22 2007-06-10
  • 打赏
  • 举报
回复
路径设置正确,获取文件信息成功,那如何将输出的文件信息写入指定文件,网上说用runtime与process,但是如何使用呢?
starli22 2007-06-10
  • 打赏
  • 举报
回复
现在才发现文件的绝对路径都是错的,都在源代码的目录下.要怎样才能正确输出文件的信息,是否用父目录跟子目录下的文件名创建File类的对像时都要指明路径,如果是子目录又如何指明,因为它还是末知的啊
believefym 2007-06-10
  • 打赏
  • 举报
回复
这样的需求不用递归会很烦的
believefym 2007-06-10
  • 打赏
  • 举报
回复
File tmp_file = new File(Textname[i]);

没有包含路径,表示在当前路径下,看看是不是你要 的在d:\\下的
starli22 2007-06-10
  • 打赏
  • 举报
回复
还是0字节.还有如何将文件的信息保存到指定文件.
joejoe1991 2007-06-10
  • 打赏
  • 举报
回复
先把流关掉再检测试试。。 我新手 答错莫怪

62,614

社区成员

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

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