请教:Android保存数据到SD卡,自定义输入要保存的文件名称

大凡哥哥 发布于 2011/12/23 09:52
阅读 10K+
收藏 1
我想讲TextView中的文字保存到SD卡中,在按下保存Button后可以自定义输入要保存的文件名称如:XXXX.txt,请教怎么实现?
加载中
0
红薯
红薯

你的难题在哪里呢?

1. 不知道怎么获取 TextView 的文字
2. 不知道怎么让用户输入保持的文件名
3. 不知道怎么将文件保存到SD卡

大凡哥哥
大凡哥哥
不好意思,我没有说清楚。 我的问题在:怎么样实现在保存XXXX.txt时,文件名称可以自己输入,然后保存到SD卡中。
0
大凡哥哥
大凡哥哥

不好意思,我没有说清楚。

我的问题在:怎么样实现在保存XXXX.txt时,文件名称可以自己输入,然后保存到SD卡中。

0
红薯
红薯
你就给个输入框让用户输入文件名,然后获取该文件名就直接保存到SD卡呗
0
大凡哥哥
大凡哥哥
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
File file_name = null;
try {
  file_name = new File("/sdcard/" + "Test.txt");
if (!file_name.exists()) {
file_name.createNewFile();
}
System.out.println(file_name);
} catch (final IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
final OutputStream os = new FileOutputStream(file_name);
os.write(code.getBytes());
os.close();
} catch (final Exception e) {
e.printStackTrace();
}

}

代码如上

 file_name = new File("/sdcard/" + "Test.txt"); 

后面的文件名写成固定的话可以实现保存,但是获取输入框中的就保存失败,看不到保存的文件

String name = EditText.getText().toString();

  file_name = new File("/sdcard/" + name);  这样不能实现保存

0
大凡哥哥
大凡哥哥

引用来自“红薯”的答案

你就给个输入框让用户输入文件名,然后获取该文件名就直接保存到SD卡呗
f (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
File file_name = null;
try {
file_name = new File("/sdcard/" + "Test.txt");
if (!file_name.exists()) {
file_name.createNewFile();
}
System.out.println(file_name);
} catch (final IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
final OutputStream os = new FileOutputStream(file_name);
os.write(code.getBytes());
os.close();
} catch (final Exception e) {
e.printStackTrace();
}

}

代码如上

file_name = new File("/sdcard/" + "Test.txt");

后面的文件名写成固定的话可以实现保存,但是获取输入框中的就保存失败,看不到保存的文件

String name = EditText.getText().toString();

file_name = new File("/sdcard/" + name); 这样不能实现保存
0
李超<汉告了坤>

额。。。。。。。。你说的我不懂

String dir=Environment.getExternalStorageDirectory()+"/.ainibaichi"

果断用这个啊试着把+后边的改成一个值。还有Environment.getExternalStorageDirectory()这个参数是取得外存储器的路径。权限什么的必须添加上

 

/***保存到sd卡下的.ainibaichi文件夹下的准确可行的代码****/
	public void saveToSDCard(String filename,String content) throws Exception{
		String dir=Environment.getExternalStorageDirectory()+"/.ainibaichi";
		
		java.io.File a=new java.io.File(dir);
       /***判断文件夹是否存在,不存在则创建***/
		if (!a.exists()){
			a.mkdir();
		}
		File file=new File(a,filename);
		FileOutputStream outStream=new FileOutputStream(file);
		outStream.write(content.getBytes());
		outStream.close();

之后在mainactivity里面去使用saveToSDCard方法。

 

fileService=new FileService(this);
       Button button=(Button)this.findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
	
					EditText text1=(EditText)findViewById(R.id.filename);
					EditText text2=(EditText)findViewById(R.id.filecontent);
				    String filename=text1.getText().toString();
				    String content=text2.getText().toString();
				    try {
						fileService.saveToSDCard(filename, content);
						Toast.makeText(MainActivity.this,R.string.success, 1).show();
					} catch (Exception e) {
						// TODO Auto-generated catch block
						Log.e(TAG, e.toString());
						Toast.makeText(MainActivity.this,R.string.error, 1).show();
					}
				
				
			

返回顶部
顶部