java读取文件
// 创建文件夹及文件
public File createFile() {
File fileDir = new File("d:/random");
if (!fileDir.exists()) {
fileDir.mkdirs();//创建文件夹
}
File f = new File("d:/random/input.txt");
if (!f.exists()) {
try {
f.createNewFile();//创建文件
} catch (IOException e) {
e.printStackTrace();
}
}
return f;
}
// 将个人信息存入文件中
File file = createFile();//创建文件
try {
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(userId+","+name+","+nickname+","+password+","+sex+","+email+","+tel+","+iName+",");
writer.close();
System.out.println("都写进来了啊");
} catch (IOException e) {
System.out.println("没读到");
}
//读取信息,并保存在数组s中
public void getInfo() {
File sdcardFile = Environment.getExternalStorageDirectory();
File f = new File(sdcardFile.toString() + "/info.txt");
String strLine = "";
String str = "";
try {
BufferedReader read = new BufferedReader(new FileReader(f));
while ((strLine = read.readLine()) != null) {
str += strLine;
}
s=str.split(",");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
spilt方法:将一个字符串分割为子字符串,然后将结果作为字符串数组返回,在stringObj中每个出现separator的位置都要进行分解。separator不作为任何数组元素的部分返回。
Android读取文件与Java差不多,只不过创建路径的时候有所不同
首先要判断是否存在sd卡:
String status = Environment.getExternalStorageState();
if (status.equals(Environment.MEDIA_MOUNTED)) {
return true;
} else {
return false;
}
如果存在则得到存储文件的路径:
File sdcardFile = Environment.getExternalStorageDirectory();
File f = new File(sdcardFile.toString() + "/info.txt");
System.out.println("路径是:"+f.toString());
if (!f.exists()) {
try {
f.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("现在创建了吧!");
}
最后切结要加上权限:
<!-- 读写存储卡的权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!-- 在SDCard中创建于删除文件的权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<uses-permission android:name="android.permission.INTERNET" >
</uses-permission>