Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取内部存储器上文件的file.length。length()似乎不起作用_Java_Android - Fatal编程技术网

Java 如何获取内部存储器上文件的file.length。length()似乎不起作用

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

正在尝试从本地存储获取文件的长度。文件100%存在(因为我甚至试图在获取长度之前直接创建它(并检查它是否存在)。代码如下所示:

    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%的情况下,它会引发异常。可能是什么问题?获取本地存储文件长度的正确方法是什么

非常感谢

更新(完整代码)-文件存在且可读,但无长度:(


请提供帮助

无需打开文件即可获取文件长度:

  • 方法1:
  • File File=新文件(“someFile.txt”); long length=file.length()

  • 方法2:
  • RandomAccessFile raf=新的RandomeAccessFile(新文件(“someFile.txt”),“r”);
    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();