Je ne comprends pas pourquoi nous n'entrons pas dans la seconde if. Je vérifie d'abord si le fichier existe (non, logique), je le crée, et je vérifie à nouveau mais il renvoie toujours faux. J'ai essayé pendant une heure de trouver le problème et je suis sûr que c'est une erreur stupide. Désolé pour mon pauvre anglaisFichier créé mais retourne faux
Voici le code:
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
}
}
}
Edit: Code du travail
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();
}
}
}
lire la documentation openFileOutput. il n'a pas le même comportement que le fichier – njzk2