在linux上,使用File.length() 有时会返回0, 但文件实际有内容。求各位大哥大姐帮忙.//test.java
import java.io.*;
public class test
{
public static void main(String args[])
{
File file = new File("/proc/mdstat");
System.out.println("file.length(): " + file.length());
}
}
import java.io.*;
public class test
{
public static void main(String args[])
{
File file = new File("/proc/mdstat");
System.out.println("file.length(): " + file.length());
}
}
这句好像是新生成一个文件吧,新文件内容应该为空吧.此时length()得到的值是0正常啊感觉
另外,文件是可读的,
我用了canRead(), isFile()都返回true.to Jacky1206(还价门外有条河):
生成新文件用createNewFile()
希望在linux做开发的高手给点指导.文件在linux上应该存在的。thank you very much.
1.文件存在,是文件,不是目录。
2.文件里面有内容,超过30个字节.
3.登陆用户对文件有读的权限。
4.文件的路径==file.getAbsolutePath()获取的路径。
感谢各位的建议。希望各位能把代码放到linux上运行一下.
你把File file = new File("/proc/mdstat")改为
File file = new File("proc/mdstat")试试。
另外,看看mdstat是文件还是目录,如果是目录,返回的还是0
你说的情况我去试一下,先谢了。
另外对于你这个问题,其中 可能的一个错误原因就是,这个文件还被其他程序引用。你看一下有没有在调用length()方法之前有任何语句在引用该文件,比如FileOutPutStream(file),如果有,设法释放。或者在引用之前调用length()。
祝你成功吧