我怎么知道文件是否存在?

时间:2012-09-30 14:18:26

标签: java android android-file file-exists

我在android上编写了这段代码,以了解.txt文件是否存在。

    File file_a =new File("a.txt");

 InputStream in3 = getResources().openRawResource(R.raw.b);
         FileOutputStream out3 = null;


        try {   out3=openFileOutput("a.txt",Context.MODE_WORLD_WRITEABLE);
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 
         byte[] buff3 = new byte[1024];
         int read3 = 0; 

         try {
            while ((read3 = in3.read(buff3)) > 0) {
               out3.write(buff3, 0, read3);
            }
         } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace(); 
        } finally {
              try {
                in3.close();
                out3.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

         }

    boolean a=file_a.exists();

它始终返回false

我该如何解决这个问题?

5 个答案:

答案 0 :(得分:1)

您根本没有创建过文件。您所做的只是实例化一个文件句柄。

答案 1 :(得分:1)

如果File不存在,您可以创建

使用此

if(!file.exist()){
file.createNewFile( ); 
} 

之后,当您致电file.exist();时,它将返回true

答案 2 :(得分:0)

并不总是返回false。

当且仅当此抽象路径名表示的文件或目录存在时,

File#exists()才返回true;否则就是假的。

您正在创建一个新文件,然后您应该调用File#createNewFile,如果成功创建则返回true,否则为false。

在文件中已创建,然后您可以检查File#getAbsolutePath()以验证文件的绝对路径是否相同。

答案 3 :(得分:0)

我找到了解决方案。我尝试了读取文件,如果它获取了不存在的catch块。感谢大家。

try {
        FileInputStream deneme=openFileInput("a.txt");
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
         kopyala();
        e1.printStackTrace();
    }

答案 4 :(得分:0)

您需要提供文件的路径以及文件名。假设文件位于根目录中的SD卡上:

File file_a = new File(Environment.getExternalStorageDirectory() + "/a.txt"); 
boolean a=file_a.exists();

如果它在子目录中,请添加路径的其余部分:

    File file_a = new File(Environment.getExternalStorageDirectory() + "yourpath/a.txt"); 

如果您已将文件写入内部存储,它位于“data / data / your.package.name”路径中的某个位置,请使用该文件。

    File file_a = new File(Environment.getExternalStorageDirectory() + "date/data/your.package.name/a.txt");