Java 我的文本文件保存到哪里?
我做了一个基本的保存到文本文件的程序。它工作得很好,但我就是找不到创建的文本文件存储在哪里。有人知道它们存放在哪里吗 已授予所有必要的权限Java 我的文本文件保存到哪里?,java,android,android-studio,Java,Android,Android Studio,我做了一个基本的保存到文本文件的程序。它工作得很好,但我就是找不到创建的文本文件存储在哪里。有人知道它们存放在哪里吗 已授予所有必要的权限 public class MainActivity extends AppCompatActivity { Context context = this; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState
public class MainActivity extends AppCompatActivity {
Context context = this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
final EditText enter = ((EditText) findViewById(R.id.editText));
final TextView show = ((TextView) findViewById(R.id.textView));
Button b = ((Button) findViewById(R.id.button));
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
final String s = enter.getText().toString();
writeToFile(s, s);
show.setText(readFromFile(s));
}
}
);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
private void writeToFile(String name, String data) {
try {
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(context.openFileOutput(name + ".txt", Context.MODE_PRIVATE));
outputStreamWriter.write(data);
outputStreamWriter.close();
} catch (IOException e) {
Log.e("Exception", "File write failed: " + e.toString());
}
}
private String readFromFile(String name) {
String ret = "";
try {
InputStream inputStream = openFileInput(name + ".txt");
if (inputStream != null) {
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
String receiveString = "";
StringBuilder stringBuilder = new StringBuilder();
while ((receiveString = bufferedReader.readLine()) != null) {
stringBuilder.append(receiveString);
}
inputStream.close();
ret = stringBuilder.toString();
}
} catch (FileNotFoundException e) {
Log.e("login activity", "File not found: " + e.toString());
} catch (IOException e) {
Log.e("login activity", "Can not read file: " + e.toString());
}
return ret;
}
public static void Save(File file, String[] data) {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
try {
for (int i = 0; i < data.length; i++) {
fos.write(data[i].getBytes());
if (i < data.length - 1) {
fos.write("\n".getBytes());
}
}
} catch (IOException e) {
e.printStackTrace();
}
} finally {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public类MainActivity扩展了AppCompatActivity{
上下文=这个;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
final EditText enter=((EditText)findviewbyd(R.id.EditText));
最终文本视图显示=((文本视图)findViewById(R.id.TextView));
按钮b=((按钮)findViewById(R.id.Button));
b、 setOnClickListener(新视图。OnClickListener(){
@凌驾
公共void onClick(视图){
最后一个字符串s=enter.getText().toString();
书面文件;
show.setText(readFromFile);
}
}
);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(右菜单菜单菜单主菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
//noinspection SimplifiableIf语句
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
私有void writeToFile(字符串名称、字符串数据){
试一试{
OutputStreamWriter OutputStreamWriter=新的OutputStreamWriter(context.openFileOutput(name+“.txt”,context.MODE_PRIVATE));
outputStreamWriter.write(数据);
outputStreamWriter.close();
}捕获(IOE异常){
Log.e(“异常”,“文件写入失败:”+e.toString());
}
}
私有字符串readFromFile(字符串名称){
字符串ret=“”;
试一试{
InputStream InputStream=openFileInput(名称+“.txt”);
如果(inputStream!=null){
InputStreamReader InputStreamReader=新的InputStreamReader(inputStream);
BufferedReader BufferedReader=新的BufferedReader(inputStreamReader);
字符串receiveString=“”;
StringBuilder StringBuilder=新的StringBuilder();
而((receiveString=bufferedReader.readLine())!=null){
stringBuilder.append(receiveString);
}
inputStream.close();
ret=stringBuilder.toString();
}
}catch(filenotfounde异常){
Log.e(“登录活动”,“未找到文件:”+e.toString());
}捕获(IOE异常){
Log.e(“登录活动”,“无法读取文件:+e.toString());
}
返回ret;
}
公共静态无效保存(文件,字符串[]数据){
FileOutputStream=null;
试一试{
fos=新文件输出流(文件);
}catch(filenotfounde异常){
e、 printStackTrace();
}
试一试{
试一试{
对于(int i=0;i
}正在写入文件。这是您的应用程序专用的区域。除了在根设备上,其他应用程序或桌面程序无法查看它。您可以使用以下命令
ActivityName.this.getFileDir().getAbsolutePath()您可以使用
context.getFileStreamPath()
将路径返回到保存文件的位置。根据:
返回文件系统上的绝对路径,其中
存储使用openFileOutput(字符串,int)创建的文件
如果您在仿真器上测试此代码,您可以将其放入仿真器中,并可能在该目录中找到您的文件
/data/data/<appid>/files
/data/data//文件
其中
是build.gradle中指定的应用程序id为什么不在android文档中查找它?
/data/data/<appid>/files