读书人

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

发布时间: 2011-12-19 23:23:36 作者: rapoo

为什么用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:\\下的

读书人网 >J2SE开发

热点推荐