0

我在 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

我怎样才能解决这个问题?

4

5 回答 5

1

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

于 2012-09-30T14:23:14.447 回答
1

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

使用这个

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

之后当你打电话时file.exist();它会返回true

于 2012-09-30T14:26:17.260 回答
0

它并不总是返回 false。

File#exists()当且仅当此抽象路径名表示的文件或目录存在时,才返回 true;否则为假。

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

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

于 2012-09-30T14:21:02.123 回答
0

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

try {
        FileInputStream deneme=openFileInput("a.txt");
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
         kopyala();
        e1.printStackTrace();
    }
于 2012-09-30T14:34:06.277 回答
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"); 
于 2012-09-30T14:36:49.700 回答