Java 如何获取内部存储器上文件的file.length。length()似乎不起作用
正在尝试从本地存储获取文件的长度。文件100%存在(因为我甚至试图在获取长度之前直接创建它(并检查它是否存在)。代码如下所示:Java 如何获取内部存储器上文件的file.length。length()似乎不起作用,java,android,Java,Android,正在尝试从本地存储获取文件的长度。文件100%存在(因为我甚至试图在获取长度之前直接创建它(并检查它是否存在)。代码如下所示: try { InputStream is = new FileInputStream("errorlog2.txt"); // Get the size of the file long length = file.length(); // Close the input stream and re
try {
InputStream is = new FileInputStream("errorlog2.txt");
// Get the size of the file
long length = file.length();
// Close the input stream and return length
is.close();
return length;
}
catch (IOException e) {
Log.w(BaseHelper.TAG_MAIN_ACTIVITY, "bad stuff: ", e);
return 0;
在100%的情况下,它会引发异常。可能是什么问题?获取本地存储文件长度的正确方法是什么
非常感谢
更新(完整代码)-文件存在且可读,但无长度:(
请提供帮助无需打开文件即可获取文件长度:
long length=raf.length();根据创建文件的位置,您需要提供完整路径,而不仅仅是文件名 例如,如果文件是使用
Context.openFileOutput(…)
创建的,那么您可以使用类似于
long length = new File(getFilesDir().getAbsolutePath() + "/errorlog2.txt").length();
什么是
文件
?它在哪里声明?它是如何初始化的?引发了什么异常?(请记住,它与您打开/关闭的文件
是完全无关的。它说“类型fileoops,typo的getabsolutpath方法未定义。那应该是getAbsolutePath()
(我在'l'之前有一个虚假的'u')).在我的回答中固定了。
long length = new File(getFilesDir().getAbsolutePath() + "/errorlog2.txt").length();