为什么用length方法获得的文件长度总为0
代码如下:
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字节.
还有如何将文件的信息保存到指定文件.
------解决方案--------------------File tmp_file = new File(Textname[i]);
没有包含路径,表示在当前路径下,看看是不是你要 的在d:\\下的