package com.file.activity;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.util.Scanner;
import com.file.com.R;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
//自定义 向SDCard上保存文件
public class FileOperateSdcard extends Activity {
private static final String FILENAME = "/mnt/" +
"sdcard/FileOperateSdcard/mymldn.txt";//SDCard上保存路径及文件名称
private TextView msg = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main);
msg = (TextView)findViewById(R.id.msg);
File file = new File(FILENAME);//定义要操作的文件
isFile(file);
fileOutput(file);
fileInput(file);
}
/**
* 判断文件是否存在
* */
private void isFile(File file) {
if(!file.getParentFile().exists()){
file.getParentFile().mkdirs();
}
else
return ;
}
/**
* 文件读取
* */
private void fileInput(File file) {
Scanner scanner = null;
FileInputStream input=null;
try {
input = new FileInputStream(file);
scanner = new Scanner(input);//扫描流
} catch (FileNotFoundException e) {
e.printStackTrace();
}
while(scanner.hasNext()){
this.msg.append(scanner.next()+"\n");
}
scanner.close();
}
/**
* 文件存储
* */
private void fileOutput(File file) {
PrintStream out = null;
try {
out = new PrintStream(file);
out.print("南阳理工学院软件学院梦翔工作室,学生:熊猫a6");
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally{
if(out != null)
out.close();
}
}
}
其实以上代码只判断了文件是否存在,但是更全面的方法是先判断Sdcard是否存在
具体步骤如下
1.加入sdcard操作权限;
2.确认sdcard的存在;
3.不能直接在非sdcard的根目录创建文件,而是需要先创建目录,再创建文件;
在AndroidManifest.xml添加sdcard操作权限
<!-- sdcard权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE">
</uses-permission>
变量声明:
private final static String PATH = "/sdcard/digu";
private final static String FILENAME = "/notes.txt";
向sdcard写文件
/**
* 写文件
*/
private void onWrite() {
try {
Log.d(LOG_TAG, "Start Write");
//1.判断是否存在sdcard
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
//目录
File path = new File(PATH);
//文件
File f = new File(PATH + FILENAME);
if(!path.exists()){
//2.创建目录,可以在应用启动的时候创建
path.mkdirs();
}
if (!f.exists()) {
//3.创建文件
f.createNewFile();
}
OutputStreamWriter osw = new OutputStreamWriter(
new FileOutputStream(f));
//4.写文件,从EditView获得文本值
osw.write(editor.getText().toString());
osw.close();
}
} catch (Exception e) {
Log.d(LOG_TAG, "file create error");
}
}