笔记95--文件操作

来源:互联网 发布:淘宝客服评价回复话术 编辑:程序博客网 时间:2024/06/05 00:52
1、清单文件加入权限

<!-- 往SDCard的创建与删除文件权限 --><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/><!-- 往SDCard写入数据权限 --><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

2、SD卡是否存在

private boolean ExistSDCard() {    if (android.os.Environment.getExternalStorageState().equals(      android.os.Environment.MEDIA_MOUNTED)) {         return true;    } else        return false;  }  

3、写文件

File类能创建文件或文件夹,但是不能两个一起创建。即当路径和文件名都不存在时,不能通过File file=new File(String path);创建指定路径下的文件。再通俗点,比如存在路径C:\data,而执行File file=new File(C:\data\admin\myDesk.jpg);只会创建一个路径,最后一个文件夹的名字叫做myDesk.jpg。当然还有一种创建文件的方式:File file=new File("路径", "文件名");

1)写入图片到SD卡

private String filename1=Environment.getExternalStorageDirectory()+"/bsbwashcarbuyer";try {File file1=new File(filename1);if(!file1.exists())file1.mkdir();File file=new File(filename+i+".jpg");if(file.exists()){ file.delete(); }FileOutputStream out = new FileOutputStream(file);bm.compress(Bitmap.CompressFormat.JPEG, 100, out);out.flush();out.close();} catch (Exception e) {e.printStackTrace();} 

以下全部也需要加FileOutputStream.flush();忘记写了。

2)写入文件到SD卡

只需替换上面保存图片的一部分:

FileOutputStream fos = new FileOutputStream(file1);fos.write(fileContentStr.getBytes());//<span style="font-family: Arial, Helvetica, sans-serif;">fileContentStr:传入的字符串</span>fos.close();
3)打开文件的模式:

私有操作模式:创建出来的文件只能被本应用访问,其他应用无法访问该文件,另外采用私有操作模式创建的文件,写入文件中的内容会覆盖原文件的内容。

FileOutputStream fos = context.openFileOutput(fileNameStr, context.MODE_PRIVATE);fos.write(fileContentStr.getBytes());fos.close();

追加操作模式:不覆盖原文件,但同样其他应用无法访问该文件。

FileOutputStream fos = context.openFileOutput(fileNameStr, context.MODE_APPEND);fos.write(fileContentStr.getBytes());fos.close();

读取操作模式:可以被其他应用读取,但不能写入。

FileOutputStream fos = context.openFileOutput(fileNameStr, context.MODE_WORLD_READABLE);fos.write(fileContentStr.getBytes());fos.close();
写入操作模式:可以被其他应用写入,但不能读取。

FileOutputStream fos = context.openFileOutput(fileNameStr, context.MODE_WORLD_WRITEABLE);fos.write(fileContentStr.getBytes());fos.close();
读写操作模式:可以被其他应用读写

FileOutputStream fos = context.openFileOutput(fileNameStr, context.MODE_WORLD_READABLE+context.MODE_WORLD_WRITEABLE);fos.write(fileContentStr.getBytes());fos.close();

4、读文件
 /**  * 读取文件内容  * @param fileNamestr 文件名  * @return  * @throws IOException  */public String read(String fileNamestr) throws IOException{  FileInputStream fis = context.openFileInput(fileNamestr);  ByteArrayOutputStream bos = new ByteArrayOutputStream();  byte[] buffer = new byte[1024];  int len = 0;  while((len = fis.read(buffer)) != -1){   bos.write(buffer,0,len);  }  byte[] data = bos.toByteArray();      return new String(data);}
5、小结

输入流输出流是以我为中心。即我要用文件中的内容,但是我没有,那么我需要从文件中读数据,即我需要一个输入流;我要把我这儿的数据访问文件中,即我要输出到文件,那么我需要一个输出流。







0 0