`

比较常用的文件处理类

 
阅读更多
package com.aijia.util;
/**
 * 一些文件处理
 */


import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;






import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.util.Log;
import android.widget.ImageView;


public class FileUtil {
	/**
	 * 显示图片的缩略图
	 * 
	 * @param uri  图片路径
	 * @param size图片比例
	 * @return
	 */
	public static Bitmap getOpBitmap(String uri, int size) {
		BitmapFactory.Options options = new BitmapFactory.Options();
		options.inJustDecodeBounds = true;


		Bitmap bitmap = BitmapFactory.decodeFile(uri, options);


		options.inJustDecodeBounds = false;


		int be = (int) (options.outHeight / (float) size);


		if (be <= 0)
			be = 1;
		options.inSampleSize = be;
		options.inPreferredConfig = Bitmap.Config.RGB_565;
		File file = new File(uri);
		InputStream in = null;
		try {
			in = new FileInputStream(file);


		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if (in != null) {
			bitmap = BitmapFactory.decodeStream(in, null, options);
			try {
				in.close();
			} catch (IOException e) {


				e.printStackTrace();
			}
		}


		// bitmap = BitmapFactory.decodeFile(uri, options);
		return bitmap;
	}


	/**
	 * 删除文件夹
	 * 
	 * @param folderPath
	 */
	public static 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
	 */


	public static 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]);// 再删除空文件夹
			}
		}
	}


	/**
	 * 判断指定路徑的文件是否存在
	 * 
	 * @param path
	 * @return
	 */
	public static boolean existFile(String path) {
		File file = new File(path);
		if (file.exists()) {
			return true;
		} else {
			return false;
		}


	}


	/**
	 * 如果给定路径不存在这个文件夹,创建文件夹
	 * 
	 * @param path
	 */
	public static void createFolder(String path) {
		File file = new File(path);
		if (!file.exists()) {
			file.mkdirs();
		}


	}
/**
 * 如果給定路徑存在這個文件,刪除這個文件
 * @param path
 */
	public static void deleteFile(String path) {
		File file = new File(path);
		if (file.exists()) {
			file.delete();
		}


	}


	


	/**
	 * 下载图片到本地
	 * 
	 * @param urlPath
	 * @param savePath
	 * @throws Exception
	 */
	public static void downloadImg(String urlPath, String savePath)
			throws Exception {// 获取图片
		if (!existFile(savePath)) {//如果不存在这个文件


			String folderpath = savePath
					.substring(0, savePath.lastIndexOf("/"));
			createFolder(folderpath);//创建相应的文件夹


			String str = java.net.URLEncoder.encode(urlPath, "UTF-8");
			str = str.replaceAll("%2F", "/");// 需要把网址的特殊字符转过来
			str = str.replaceAll("%3A", ":");


			URL url = new URL(str);
			HttpURLConnection conn = (HttpURLConnection) url.openConnection();
			conn.setConnectTimeout(3 * 1000);
			if (conn.getResponseCode() == 200) {
				InputStream inSream = conn.getInputStream();
				File file = new File(savePath);


				FileOutputStream outStream = new FileOutputStream(file);
				byte[] buffer = new byte[1024];
				int len = -1;
				while ((len = inSream.read(buffer)) != -1) {
					outStream.write(buffer, 0, len);
				}
				outStream.close();
				inSream.close();


			}


		}


	}
}


分享到:
评论

相关推荐

    Java常用文件处理类

    该类主要对常见的一些文件操作进行了封装,如读写文件(UTF-8)、复制文件、删除文件,创建目录等

    CSV文件处理PHP类

    PHP作为一个服务器端脚本语言,提供了处理CSV文件的强大功能,而这里提到的“CSV文件处理PHP类”进一步封装了这些功能,提供了更便捷的数据操作接口。 这个PHP类可能包含以下关键功能: 1. **读取CSV文件**:类...

    文件处理通用类

    "文件处理通用类"是一个面向开发者设计的工具类库,旨在简化文件操作,提高代码的可复用性和效率。这类库通常包含了多种常用的文件操作方法,如读取、写入、移动、复制、删除等,适用于各种类型的文件和场景。 这篇...

    PHP文件上传类

    为了简化这个过程,开发者通常会编写一个专门的文件上传类,以实现对上传过程的全面控制和错误处理。以下是对"PHP文件上传类"的详细解析: 1. **类的结构**: - 一个PHP文件上传类通常包含一系列的方法,如`upload...

    Bmp 文件基本处理类

    `BitMap.h`很可能包含了Bmp文件处理类的定义,而`BitMap.cpp`则包含该类的实现细节。通常,类定义会声明类的方法和属性,而实现则会为这些方法编写实际的代码。 1. **打开BMP文件**: 在C++中,为了读取BMP文件,...

    matlab开发-类处理cif格式的文件

    在MATLAB中开发针对CIF(Crystallographic Information File)格式的处理程序,是一种常见的任务,特别是在晶体结构分析和材料科学领域。CIF文件是一种标准化的文本格式,用于存储晶体结构的数据,包括原子的位置、...

    jsp文件上传类 jsp文件上传类

    在Java服务器页面(JSP)中处理文件上传是一项常见的任务,尤其在开发Web应用程序时,如用户需要上传图片、文档或其他类型的数据。本知识点将详细讲解JSP中的文件上传类和相关技术,以及如何实现一个基本的文件上传...

    CSV文件处理PHP类.zip

    这个"CSV文件处理PHP类"提供了一个方便的解决方案,它将常见的CSV操作封装到一个类中,使得开发者能够更加高效地进行数据处理。 首先,让我们深入了解一下这个PHP类的核心功能。这个类可能包含了以下方法: 1. **...

    vc++数字图像处理 BMP文件的ImgCenterDib类

    4. **图像变换**:通过ImgCenterDib类,可以实现图像的旋转、缩放、裁剪等几何变换操作,这在图像处理中非常常见。 5. **保存图像**:处理完图像后,ImgCenterDib类能够将修改后的图像数据重新组织成BMP文件格式并...

    一个php文件上传处理类库.zip

    3. 调用类的方法处理文件上传。 4. 检查返回的错误信息,如果有错误,进行相应处理;如果没有错误,可以继续处理上传后的文件。 在实际项目中,使用这样的类库可以大大减少文件上传功能的开发时间,同时提高代码...

    多文件上传类

    在PHP中,多文件上传是一项常见的功能,用于处理用户通过网页表单提交的多个文件。在给定的代码中,定义了一个名为`Upload`的类,这个类专门用于实现多文件上传并支持生成缩略图的功能。以下是这个类中包含的关键...

    JAVA对音频文件处理程序

    本项目“JAVA对音频文件处理程序”聚焦于读取音频文件,执行降分贝操作,然后将处理后的音频保存为新的文件。这里我们将深入探讨相关的关键知识点。 首先,Java提供了一个强大的包`javax.sound.sampled`来处理音频...

    php文件上传类

    4. **临时文件处理**:当文件上传成功后,它们首先会被存储在服务器的临时目录中。类应包含方法将这些临时文件移动到指定的存储位置,并在此过程中可能需要重命名文件以避免冲突。 5. **错误处理**:在上传过程中...

    VC-MFC文件处理程序源代码

    `WriteFile.cpp`和`WriteFile.h`很可能是主文件处理类的实现和声明。在MFC中,文件操作通常通过`CFile`类进行,这个类提供了打开、读取、写入和关闭文件的功能。`WriteFile`类可能扩展了`CFile`,增加了特定的文件...

    比较全面的php文件上传类.zip

    这个"比较全面的php文件上传类"是一个专门处理文件上传的工具,它封装了相关操作,提供了更方便、安全的方式来处理文件上传过程。下面将详细讲解这个类库的核心知识点及其在实际开发中的应用。 首先,类库的设计...

    超级文件,目录处理类(上传文件)

    "超级文件,目录处理类"可能是一个定制的工具集,封装了常见的文件和目录操作,以提高效率和易用性。这种类库可能包含一些实用方法,如批量移动、复制文件,或者检查文件是否存在、文件大小等。 4. 源码分析: ...

    实用的php文件操作类.zip

    "实用的PHP文件操作类"就是这样一个工具,它旨在简化常见的文件处理任务。下面我们将深入探讨PHP文件操作类的关键概念和功能。 1. **类库介绍** 这个类库很可能包含了若干个PHP类,每个类都专注于一个特定的文件或...

    ASPNET文件处理

    ### ASP.NET 文件处理详解 #### 一、文件操作概述 在任何编程技术中,文件操作都是非常基础且重要的功能。ASP.NET作为一种广泛使用的Web应用程序开发框架,利用.NET平台的强大功能为开发者提供了丰富的文件处理...

    C# 类库合集,包含文件类、加密类、转换类、数据库连接处理类、验证类

    多年前自己整理的类库合集,仍了可惜了,分享给 C# .net...包含文件类、DES 加密类、MD5加密类、RC2加密类、Rijndael加密类、RSA加密类、三重DES 对称加密类、转换类、Sql数据库处理类、验证类、控件处理类、日期时间类

    强大的php文件上传类强大的php文件上传类

    一个强大的PHP文件上传类能够简化这一过程,处理各种安全问题,并提供灵活性来满足不同的项目需求。下面我们将深入探讨PHP文件上传的核心概念以及如何构建或使用这样的强大类。 一、PHP文件上传基础 1. **表单设置...

Global site tag (gtag.js) - Google Analytics