我在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
。
我该如何解决这个问题?
答案 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");