package sp.mft;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
public class SpActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String filePath = "ip_sensor"; //sdcartpath/ipsensor/
String fileName = "sensor_list.xml";
//写文件
writeToXml(SpActivity.this,"i want write in",getSdcardPath()+filePath,fileName);
//读文件
String readXml = ReadTxtFile(getSdcardPath()+filePath+"/"+fileName);
System.out.println(readXml);
}
////写文件
public static int writeToXml(Context context, String str,String file_path,String file_name){
int result = 0;
File path = new File(file_path);
File file = new File(file_path+"/"+file_name);
if (!path.exists()) {
// 路径不存在? Just 创建
path.mkdirs();
}
if (!file.exists()) {
// 文件不存在、 Just创建
try {
file.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
OutputStreamWriter osw = null;
try {
osw = new OutputStreamWriter(new FileOutputStream(
file));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
try {
osw.write(str);
osw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
/// 读文件
public static String ReadTxtFile(String strFilePath)
{
String path = strFilePath;
String content = ""; //文件内容字符串
//打开文件
File file = new File(path);
//如果path是传递过来的参数,可以做一个非目录的判断
if (file.isDirectory())
{
Log.d("TestFile", "The File doesn't not exist.");
}
else
{
try {
InputStream instream = new FileInputStream(file);
if (instream != null)
{
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
//分行读取
while (( line = buffreader.readLine()) != null) {
content += line + "\n";
}
instream.close();
}
}
catch (java.io.FileNotFoundException e)
{
Log.d("TestFile", "The File doesn't not exist.");
}
catch (IOException e)
{
Log.d("TestFile", e.getMessage());
}
}
return content;
}
// 获取sdCard路径
public static String getSdcardPath()
{
// 定义一个空字符串,存储sdcard路径
String sdcardPath = "";
// 定义一个File类型的变量,存储sdcard的路径
File sdcardPathFile = null;
// 判断sdcard是否存在
boolean isSdcardExist = Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED);
if (isSdcardExist)
{
// 将路径值赋给变量sdcardPath
sdcardPathFile = Environment.getExternalStorageDirectory();
sdcardPath = sdcardPathFile.toString() + "/";
}
else
{
// 将路径值赋给变量sdcardPath
sdcardPathFile = Environment.getRootDirectory();
sdcardPath = sdcardPathFile.toString() + "/";
}
// 最后返回一个保存sdcard路径的字符串
return sdcardPath;
}
//\\
}
然后是是 xml 加入 权限
<!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <!-- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>