Android 文件操作工具类

package cn.ibabyzone.library;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import android.app.Activity;
import android.os.Environment;
import android.util.Log;

//用户数据读写函数
//存在SD卡时数据从SD卡读写不存在时通过DATA目录读写
public class FileUtils
{
	private String SDPATH;
	private int FILESIZE = 1;

	public String getSDPATH()
	{
		return SDPATH;
	}

	public FileUtils(Activity thisActivity)
	{
		if(android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
		{
			SDPATH = Environment.getExternalStorageDirectory() + "/ibabyzone/";

		}
		else
		{
			SDPATH= thisActivity.getFilesDir().toString() + "/ibabyzone/";
		}

	}

	/**
	 * 在SD卡上创建文件
	 */
	public File creatSDFile(String fileName) throws IOException
	{
		File file = new File(SDPATH + fileName);
		file.createNewFile();
		return file;
	}

	public void delFolder(String folderPath) {
        try {
                delAllFile(folderPath); //删除完里面所有内容
                String filePath = folderPath;
                filePath = filePath.toString();
                java.io.File myFilePath = new java.io.File(filePath);
                myFilePath.delete(); //删除空文件夹

       }
        catch (Exception e) {
                System.out.println("删除文件夹操作出错");
                e.printStackTrace();

       }
	}

	/**
	 * 删除文件夹里面的所有文件
	 * @param path String 文件夹路径 如 c:/fqf
	 */
	public void delAllFile(String path) {
        File file = new File(path);
        if (!file.exists()) {
                return;
        }
        if (!file.isDirectory()) {
       return;
        }
        String[] tempList = file.list();
        File temp = null;
        for (int i = 0; i < tempList.length; i++) {
                if (path.endsWith(File.separator)) {
                        temp = new File(path + tempList[i]);
                }
                else {
                        temp = new File(path + File.separator + tempList[i]);
                }
                if (temp.isFile()) {
                        temp.delete();
                }
                if (temp.isDirectory()) {
                        delAllFile(path+"/"+ tempList[i]);//先删除文件夹里面的文件
                        delFolder(path+"/"+ tempList[i]);//再删除空文件夹
                }
        }
	} 

	/**
	 * 在SD卡上创建目录
	 */
	public File creatSDDir(String dirName)
	{
		File dir = new File(SDPATH + dirName);
		dir.mkdir();
		return dir;
	}

	/**
	 * 判断SD卡上的文件夹是否存在
	 */
	public boolean isFileExist(String fileName)
	{
		File file = new File(SDPATH + fileName);
		return file.exists();
	}

	public long file_time(String fileName)
	{
		File file = new File(SDPATH + fileName);
		return file.lastModified();
	}

	/**
	 * 将一个InputStream里面的数据写入到SD卡中
	 */
	public File write2SDFromInput(String path, String fileName,InputStream input)
	{
		File file = null;
		OutputStream output = null;
		try
		{
			creatSDDir(path);
			file = creatSDFile(path + fileName);
			output = new FileOutputStream(file);
			byte[] buffer = new byte[FILESIZE];
			while ((input.read(buffer)) != -1)
			{
				output.write(buffer);
			}
			output.flush();
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
		finally
		{
			try
			{
				output.close();
			}
			catch (Exception e)
			{
				e.printStackTrace();
			}
		}
		return file;
	}

	public static void deleteFile(String fileStr) {
		File file = new File(fileStr);
		if (file.exists()) { // 判断文件是否存在
			if (file.isFile()) { // 判断是否是文件
				file.delete(); // delete()方法 你应该知道 是删除的意思;
			}
			file.delete();
		}
	}

	public void delFile(String path) {
		String str = SDPATH+path;
		File file = new File(str);
		if (file.exists()) {
			file.delete();
		}
	}

	public int CopyFileToFile(File fromFile, File toFile) {

		try {
			InputStream fosfrom = new FileInputStream(fromFile);
			OutputStream fosto = new FileOutputStream(toFile);
			byte bt[] = new byte[1024];
			int c;
			while ((c = fosfrom.read(bt)) > 0) {
				fosto.write(bt, 0, c);
			}
			fosfrom.close();
			fosto.close();
			return 0;

		} catch (Exception ex) {
			return -1;
		}
	}

	public File CopyFileRomToSD(String romfile){
		if(!android.os.Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED))
		{
			return null;

		}

		File rom = new File(romfile);
		File sd = new File(Environment.getExternalStorageDirectory() + "/ibabyzone/"+romfile);

		if(CopyFileToFile(rom,sd) == 0){
			return sd;
		}

		return null;
	}
}

时间: 2024-10-07 05:44:41

Android 文件操作工具类的相关文章

Android文件操作工具类(转)

Android文件操作工具类(转) 2014/4/3 18:13:35  孤独的旅行家  博客园 这个工具类包含Android应用开发最基本的几个文件操作方法,也是我第一次发博客与大家分享自己写的东西. 如果有什么补充或修改,欢迎大家提出宝贵的建议. import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;impo

小米开源文件管理器MiCodeFileExplorer-源码研究(4)-文件操作工具类FileOperationHelper

文件操作是非常通用的,注释都写在源代码中了,不多说~需要特别说明的是,任务的异步执行和IOperationProgressListener.拷贝和删除等操作,是比较费时的,采用了异步执行的方式~ Android异步执行,我也是初次了解,在CSDN上找了一篇文章,后续写个单独的例子,单独写1篇介绍.http://blog.csdn.net/xufenghappy6/article/details/7343899异步执行+事件通知 是一种比较流行的模式,比同步等待很多时候要好. 另外,特别需要说明的

FileUtils.java 本地 文件操作工具类

package Http; import java.io.File;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException; /** * * 本地文件操作工具类 *保存文本 *保存图片 * Created by lxj-pc on 2017/6/27. */public class FileUtils { public static void saveText(String cont

Code片段 : .properties属性文件操作工具类 &amp; JSON工具类

摘要: 原创出处:www.bysocket.com 泥瓦匠BYSocket 希望转载,保留摘要,谢谢! “贵专” — 泥瓦匠 一.java.util.Properties API & 案例 java.util.Properties 是一个属性集合.常见的api有如下: load(InputStream inStream)  从输入流中读取属性 getProperty(String key)  根据key,获取属性值 getOrDefault(Object key, V defaultValue)

Java IO(文件操作工具类)

FileOperate实现的功能: 1. 返回文件夹中所有文件列表 2. 读取文本文件内容 3. 新建目录 4. 新建多级目录 5. 新建文件 6. 有编码方式的创建文件 7. 删除文件 8. 删除指定文件夹下所有文件 9. 复制单个文件 10. 复制整个文件夹的内容 11. 移动文件 12. 移动目录 13. 建立一个可以追加的bufferedwriter 14. 得到一个bufferedreader Java代码    package utils; import java.io.Buffer

文件操作工具类

package utils; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.Outpu

AIR中方便的文件操作工具类

最近做项目用到了air 需要随时读写文件,所以封装了一个工具类,在此记录,方便自己和他人日后使用. FileUtils.as代码: 1 ///////////////////////////////////////////////////////////////////////////////////////// 2 // TXIEJUN Confidential 3 // Copyright 2014. All rights reserved. 4 // 5 // FileUtils.as 6

java实现简单文件操作工具类

本篇带来关于文件操作的简单工具类,包括文件夹创建,文件夹删除,文件创建,文件重命名,文件复制,文件删除.如果需要文件夹复制,其实就是创建文件夹和复制文件的操作.下面直接上代码 package com.util; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.Fil

C#文件操作工具类

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; namespace ReadLog.Public { public class FileHelper { string[] format = { "*.jpg", "*.doc", "*.exe", "*.pdf", &qu