封装的FileUtils类

来源:互联网 发布:堆优化的dijkstra 编辑:程序博客网 时间:2024/06/06 09:01
package tungkee.file;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.MalformedURLException;import android.os.Environment;public class FileUtils {private String SDPATH = null;private String SEPARATOR = File.separator;public String getSDPATH() {return SDPATH;}public FileUtils() {//得到当前外部存储设备的目录SDPATH = Environment.getExternalStorageDirectory() + SEPARATOR;}/** * 在SD卡上创建文件 * @param fileName 文件名称 * @return 返回一个File对象,代表创建的文件 * @throws MalformedURLException, IOException  */public File createSDFile(String fileName) throws IOException {File file = new File(SDPATH + fileName);file.createNewFile();return file;}/** * 在SD卡上创建目录 * @param dirName 目录名称 * @return 返回一个代表创建的目录的File对象 */public File createSDDir(String dirName) {File dir = new File(SDPATH + dirName);dir.mkdir();return dir;}/** * 判断SD卡上文件是否存在 * @param fileName 文件名称 * @return 返回一个boolean,true代表存在,false代表不存在。 */public boolean isFileExist(String fileName) {File file = new File(SDPATH + fileName);return file.exists();}/** * 将一个InputStream中的数据写入到SD卡中 * @param path 需要写入数据的文件的路径 * @param fileName 需要写入数据的文件的名称 * @param input 输入管道 * @return 返回代表写入数据的文件对象 */public File write2SDFromInput(String path, String fileName, InputStream input) {File file = null;OutputStream output = null;try {//创建目录createSDDir(path);//创建文件file = createSDFile(path + fileName);//通过文件对象,创建一个文件输出管道对象FileOutputStreamoutput = new FileOutputStream(file);//定义一个字节数组作为缓存,以4K为单位,每4K写一次到文件中byte[] buffer = new byte[4 * 1024];//循环读取InputStream流中的数据,并通过FileOutputStream对象写入到文件中while(input.read(buffer) != -1) {output.write(buffer);}//写出缓存里的数据并清空缓存output.flush();} catch (IOException e) {e.printStackTrace();} finally {try {if(output != null) {output.close();output = null;}} catch (IOException e) {e.printStackTrace();}}return file;}}

原创粉丝点击