1.File(文件保存)
private Context context;//上下文
public FileService(Context context) {
this.context = context;
}
/**
* 保存文件(保存在手机自带内存中)
* @param filename文件名称
* @param content文件内容
* @throws FileNotFoundException
*/
public void save(String filename,String content) throws Exception{
//私有操作模式:创建出来的文件只能呗本应用访问,其他应用无法访问该文件,另外采用私有操作模式创建的文件,写入的内容会覆盖源文件的内容
FileOutputStream outStream=context.openFileOutput(filename, Context.MODE_PRIVATE);//文件的名称;
outStream.write(content.getBytes());
outStream.close();
}
/**
* 读取文件内容
* @param filename文件名称
* @return 文件内容
* @throws Exception
*/
public String read(String filename) throws Exception{
FileInputStream inStream=context.openFileInput(filename);
ByteArrayOutputStream outStream=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int len=0;
while((len=inStream.read(buffer))!=-1){
outStream.write(buffer, 0, len);
}
byte[] data=outStream.toByteArray();
return new String(data);
}
/**
* 将文件保存在SD卡上
* @param filename
* @param content
* @throws Exception
*/
public void saveToSDCard(String filename,String content)throws Exception{
//获取SD卡的路径:Environment.getExternalStorageDirectory()
File file=new File(Environment.getExternalStorageDirectory(), filename);
FileOutputStream outStream=new FileOutputStream(file);
outStream.write(content.getBytes());
outStream.close();
}
/**
* 读取SD卡中的文件
* @param filename 文件名称
* @return 文件内容
* @throws Exception
*/
public String readToSDCard(String filename)throws Exception{
//获取SD卡中的文件
StringBuffer sb=new StringBuffer();
FileInputStream inStream=new FileInputStream(new File(Environment.getExternalStorageDirectory()+"/"+filename));
ByteArrayOutputStream outStream=new ByteArrayOutputStream();
int len=0;
while((len=inStream.read())!=-1){
sb.append((char)len);
}
outStream.close();
inStream.close();
return sb.toString();
}
文件的操作模式:
Context.MODE_PRIVATE:私有操作模式:创建出来的文件只能呗本应用访问,其他应用无法访问该文件,另外采用私有操作模式创建的文件,写入的内容会覆盖源文件的内容
Context.MODE_APPEND:追加操作模式,该模式会检查文件是否存在,如果存在文件就追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取,但是不能被其他应该写入
Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入,但是不能被其他应用读取
如果希望文件被其他应用读和写,可以传入context.openFileOutput(filename,Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);
Activity提供的两个API:
getCacheDir();该方法可以获取/data/data/<package name>/cache目录,在做应用时可以把缓存的文件保存在这个文件夹
getFilesDir();该方法可以获取/data/data/<package name>/files目录,在做应用时可以把要存储的文件保存在这个文件夹,只适合保存较小的文件,打文件建议保存在SD卡上。
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
private Context context;//上下文
public FileService(Context context) {
this.context = context;
}
/**
* 保存文件(保存在手机自带内存中)
* @param filename文件名称
* @param content文件内容
* @throws FileNotFoundException
*/
public void save(String filename,String content) throws Exception{
//私有操作模式:创建出来的文件只能呗本应用访问,其他应用无法访问该文件,另外采用私有操作模式创建的文件,写入的内容会覆盖源文件的内容
FileOutputStream outStream=context.openFileOutput(filename, Context.MODE_PRIVATE);//文件的名称;
outStream.write(content.getBytes());
outStream.close();
}
/**
* 读取文件内容
* @param filename文件名称
* @return 文件内容
* @throws Exception
*/
public String read(String filename) throws Exception{
FileInputStream inStream=context.openFileInput(filename);
ByteArrayOutputStream outStream=new ByteArrayOutputStream();
byte[] buffer=new byte[1024];
int len=0;
while((len=inStream.read(buffer))!=-1){
outStream.write(buffer, 0, len);
}
byte[] data=outStream.toByteArray();
return new String(data);
}
/**
* 将文件保存在SD卡上
* @param filename
* @param content
* @throws Exception
*/
public void saveToSDCard(String filename,String content)throws Exception{
//获取SD卡的路径:Environment.getExternalStorageDirectory()
File file=new File(Environment.getExternalStorageDirectory(), filename);
FileOutputStream outStream=new FileOutputStream(file);
outStream.write(content.getBytes());
outStream.close();
}
/**
* 读取SD卡中的文件
* @param filename 文件名称
* @return 文件内容
* @throws Exception
*/
public String readToSDCard(String filename)throws Exception{
//获取SD卡中的文件
StringBuffer sb=new StringBuffer();
FileInputStream inStream=new FileInputStream(new File(Environment.getExternalStorageDirectory()+"/"+filename));
ByteArrayOutputStream outStream=new ByteArrayOutputStream();
int len=0;
while((len=inStream.read())!=-1){
sb.append((char)len);
}
outStream.close();
inStream.close();
return sb.toString();
}
文件的操作模式:
Context.MODE_PRIVATE:私有操作模式:创建出来的文件只能呗本应用访问,其他应用无法访问该文件,另外采用私有操作模式创建的文件,写入的内容会覆盖源文件的内容
Context.MODE_APPEND:追加操作模式,该模式会检查文件是否存在,如果存在文件就追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取,但是不能被其他应该写入
Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入,但是不能被其他应用读取
如果希望文件被其他应用读和写,可以传入context.openFileOutput(filename,Context.MODE_WORLD_READABLE+Context.MODE_WORLD_WRITEABLE);
Activity提供的两个API:
getCacheDir();该方法可以获取/data/data/<package name>/cache目录,在做应用时可以把缓存的文件保存在这个文件夹
getFilesDir();该方法可以获取/data/data/<package name>/files目录,在做应用时可以把要存储的文件保存在这个文件夹,只适合保存较小的文件,打文件建议保存在SD卡上。
<!-- 在SDCard中创建与删除文件权限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<!-- 往SDCard写入数据权限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>