packagecom.exam.file;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.OutputStreamWriter;importandroid.os.Environment;/***文件基本操作**读取,写入**@authoryxx**2015-10-8*/publicclassFileUtil{/***判断设备是否有SD卡。*有true,没有false。*/publicstaticbooleanexistSDCard(){returnEnvironment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState());}/***fileNameSD卡目录下文件全路径名*以行为单位读取文件,常用于读面向行的格式化文件*这里读取按照GB2312的编码格式,防止中文乱码*/publicstaticvoidreadFileByLines(StringfileName){Filefile=newFile(Environment.getExternalStorageDirectory(),fileName);BufferedReaderreader=null;try{System.out.println("以行为单位读取文件内容,一次读一整行:");//中文乱码处理InputStreamReaderisr=newInputStreamReader(newFileInputStream(file),"GB2312");reader=newBufferedReader(isr);StringtempString=null;intline=1;//一次读入一行,直到读入null为文件结束while((tempString=reader.readLine())!=null){//显示行号System.out.println("line"+line+":"+tempString);line++;}reader.close();}catch(IOExceptione){e.printStackTrace();}finally{if(reader!=null){try{reader.close();}catch(IOExceptione1){}}}}/***直接写入到SD卡根目录**@paramdata*/publicstaticvoidwriteToFile(Stringdata){Filefile=newFile(Environment.getExternalStorageDirectory(),"file.txt");//根目录下BufferedWriterbw=null;try{FileOutputStreamfos=newFileOutputStream(file.getAbsoluteFile(),true);//true为添加不覆盖bw=newBufferedWriter(newOutputStreamWriter(fos,"GB2312"));bw.write(data);bw.flush();bw.close();}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}/***判断文件夹是否存在,*不存在,自动创建*@paramdata*/publicstaticvoidwriteToFolderFile(Stringdata){Filefolder=newFile(Environment.getExternalStorageDirectory()+"/alarm");BufferedWriterbw=null;if(!folder.exists()){//如果文件夹不存在,创建一个folder.mkdirs();//这里要用.mkdirs()方法,父类文件夹不存在时,可以自动创建}//而如果用.mkdir()方法则不会自动创建Filefile=newFile(folder.getAbsolutePath(),"file.txt");try{FileOutputStreamfos=newFileOutputStream(file.getAbsoluteFile(),true);//true为添加不覆盖bw=newBufferedWriter(newOutputStreamWriter(fos,"GB2312"));//os=newFileOutputStream(file,false);//true为添加不覆盖bw.write(data);bw.flush();bw.close();}catch(FileNotFoundExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}}//调用范例FileUtil.readFileByLines("GXDB.txt");FileUtil.writeToFile("阿拉斯加发绿色wefwef\n");FileUtil.writeToFolderFile("阿拉斯加发绿色wefwef\n");//mainfest.xml别忘了添加SD卡操作权限<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>