Des experts disponibles pour m'aider? Dans mon activité principale Android, j'essaie de sauvegarder une chaîne dans un fichier, puis de la récupérer si l'utilisateur l'a déjà définie. N'a pas été en mesure de trouver des exemples proches de ce que je suis en train de faire. J'apprécierais le plus toute aide! Voici mon cas de test qui se bloque:
String testString = "WORKS";
String readString;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
FileOutputStream fos;
try {
fos = openFileOutput("test.txt", Context.MODE_PRIVATE);
fos.write(testString.getBytes());
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
File file = getBaseContext().getFileStreamPath("test.txt");
if (file.exists()) {
FileInputStream fis;
try {
fis = openFileInput("test.txt");
fis.read(readString.getBytes());
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
txtDate.setText(String.valueOf(readString));
} else {
// more code
}
}
}
Pour lire le fichier, essayez ceci:
FileInputStream fis;
fis = openFileInput("test.txt");
StringBuffer fileContent = new StringBuffer("");
byte[] buffer = new byte[1024];
while ((n = fis.read(buffer)) != -1)
{
fileContent.append(new String(buffer, 0, n));
}
Essayez quelque chose comme ça
public void writeData ( String data ) {
try {
FileOutputStream fOut = openFileOutput ( "settings.dat" , MODE_WORLD_READABLE ) ;
OutputStreamWriter osw = new OutputStreamWriter ( fOut ) ;
osw.write ( data ) ;
osw.flush ( ) ;
osw.close ( ) ;
} catch ( Exception e ) {
e.printStackTrace ( ) ;
}
}
public String readSavedData ( ) {
StringBuffer datax = new StringBuffer("");
try {
FileInputStream fIn = openFileInput ( "settings.dat" ) ;
InputStreamReader isr = new InputStreamReader ( fIn ) ;
BufferedReader buffreader = new BufferedReader ( isr ) ;
String readString = buffreader.readLine ( ) ;
while ( readString != null ) {
datax.append(readString);
readString = buffreader.readLine ( ) ;
}
isr.close ( ) ;
} catch ( IOException ioe ) {
ioe.printStackTrace ( ) ;
}
return datax.toString() ;
}
Moins est plus;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tvText = (TextView) findViewById(R.id.tvText);
try {
// Create File and Content
String FILE_NAME = "hallo.txt";
String content = "Hallo Welt!";
FileOutputStream fos = openFileOutput(FILE_NAME, MODE_PRIVATE);
fos.write(content.getBytes());
fos.close();
// Read File and Content
FileInputStream fin = openFileInput(FILE_NAME);
int size;
String neuText = null;
// read inside if it is not null (-1 means empty)
while ((size = fin.read()) != -1) {
// add & append content
neuText += Character.toString((char) size);
}
// Set text to TextView
tvText.setText(neuText);
} catch (Exception error) {
// Exception
}
}
}