Android FileInputStream read () txt file to String

¿Algún experto disponible para ayudarme? En mi actividad principal de Android, bash guardar un String en un archivo y luego recuperarlo si el usuario lo configuró antes. No pude encontrar ningún ejemplo cercano a lo que estoy haciendo. ¡Agradecería cualquier ayuda! Aquí está mi caso de prueba que falla:

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 } } } 

Para leer el archivo prueba esto:

 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)); } 

Pruebe algo como esto

  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() ; } 

Menos es más;

 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 } } }