First of all, it’s worth a read in the official documentation of Android on How to Save Files.
To save in internal memory, we use the method openFileOutput() passing as parameters the file name and the mode/permission.
Permissions can be private and public.
FileOutputStream fOut = openFileOutput("nome do arquivo",MODE_WORLD_READABLE)
The méotodo openFileOutput() returns an instance of Fileoutputstream, soon, you receive a Fileinputstream object. After that, you can call the writing métpdp to write the data into the file:
String str = "data";
fOut.write(str.getBytes());
fOut.close();
To read the file:
FileInputStream fin = openFileInput('nome do arquivo');
Example class:
package com.example.storage;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends Activity {
private EditText et;
private String data;
private String file = "arquivo";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et = (EditText)(findViewById(R.id.editText1));
}
public void save(View view){
data = et.getText().toString();
try {
FileOutputStream fOut = openFileOutput(file,MODE_WORLD_READABLE);
fOut.write(data.getBytes());
fOut.close();
Toast.makeText(getBaseContext(),"file saved",
Toast.LENGTH_SHORT).show();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void read(View view){
try{
FileInputStream fin = openFileInput(file);
int c;
String temp="";
while( (c = fin.read()) != -1){
temp = temp + Character.toString((char)c);
}
et.setText(temp);
Toast.makeText(getBaseContext(),"file read",
Toast.LENGTH_SHORT).show();
}catch(Exception e){
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
The absolute path of a file in the internal memory can be given by:
String caminhoAbsolutoDoArquivo = getApplicationContext().getFilesDir().getPath() + "/" + nomeDoArquivo;
. Then you use for example in:FileOutputStream fileOut = new FileOutputStream(caminhoAbsolutoDoArquivo);
– Piovezan
Okay, thank you Piovezan!
– Reiko Dev
Victor Mendonça worked right here! Thank you!
– Reiko Dev