我不明白为什么我们不进入第二个 if。我首先检查文件是否存在(不,逻辑),然后创建它,然后再次检查,但它仍然返回 false。我试了一个小时才找到问题,我确信这是一个愚蠢的错误。对不起我糟糕的英语
这是代码:
package com.example.testcreatefileonclick;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStreamWriter;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Main extends Activity implements android.view.View.OnClickListener{
Button button;
Button addTeam;
Boolean append = true;
String name = "nomFichier.txt";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button)findViewById(R.id.button1);
button.setOnClickListener((OnClickListener) this);
addTeam = (Button)findViewById(R.id.button2);
addTeam.setOnClickListener((OnClickListener) this);
}
@Override
public void onClick(View v) {
try {
File fichier = new File(name);
if (!fichier.exists()) {
System.out.println("File doesn't exists");
}
FileOutputStream fOut = openFileOutput(name, MODE_WORLD_READABLE);
OutputStreamWriter osw = new OutputStreamWriter(fOut);
osw.write("text");
osw.flush();
osw.close();
//Why don't we go in this if ?
if (fichier.exists()) {
System.out.println("File exists");
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
编辑:工作代码
package com.example.testcreatefileonclick;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
public class Main extends Activity implements android.view.View.OnClickListener{
Button button;
Button addTeam;
Boolean append = true;
String name = "nomFichier.txt";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
button = (Button)findViewById(R.id.button1);
button.setOnClickListener((OnClickListener) this);
addTeam = (Button)findViewById(R.id.button2);
addTeam.setOnClickListener((OnClickListener) this);
}
@Override
public void onClick(View v) {
try {
String filePath = (this.getFilesDir().getPath().toString());
File fichier = new File(filePath + name);
if (!fichier.exists()) {
System.out.println("File doesn't exists");
}
fichier.createNewFile();
FileWriter file = new FileWriter(filePath + name);
file.write("text");
file.flush();
file.close();
if (fichier.exists()) {
System.out.println("File exists");
}
} catch (IOException e) {
System.out.println("Exception");
e.printStackTrace();
}
}
}