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();
}
}
}
}
分享到:
相关推荐
该类主要对常见的一些文件操作进行了封装,如读写文件(UTF-8)、复制文件、删除文件,创建目录等
PHP作为一个服务器端脚本语言,提供了处理CSV文件的强大功能,而这里提到的“CSV文件处理PHP类”进一步封装了这些功能,提供了更便捷的数据操作接口。 这个PHP类可能包含以下关键功能: 1. **读取CSV文件**:类...
"文件处理通用类"是一个面向开发者设计的工具类库,旨在简化文件操作,提高代码的可复用性和效率。这类库通常包含了多种常用的文件操作方法,如读取、写入、移动、复制、删除等,适用于各种类型的文件和场景。 这篇...
为了简化这个过程,开发者通常会编写一个专门的文件上传类,以实现对上传过程的全面控制和错误处理。以下是对"PHP文件上传类"的详细解析: 1. **类的结构**: - 一个PHP文件上传类通常包含一系列的方法,如`upload...
`BitMap.h`很可能包含了Bmp文件处理类的定义,而`BitMap.cpp`则包含该类的实现细节。通常,类定义会声明类的方法和属性,而实现则会为这些方法编写实际的代码。 1. **打开BMP文件**: 在C++中,为了读取BMP文件,...
在MATLAB中开发针对CIF(Crystallographic Information File)格式的处理程序,是一种常见的任务,特别是在晶体结构分析和材料科学领域。CIF文件是一种标准化的文本格式,用于存储晶体结构的数据,包括原子的位置、...
在Java服务器页面(JSP)中处理文件上传是一项常见的任务,尤其在开发Web应用程序时,如用户需要上传图片、文档或其他类型的数据。本知识点将详细讲解JSP中的文件上传类和相关技术,以及如何实现一个基本的文件上传...
这个"CSV文件处理PHP类"提供了一个方便的解决方案,它将常见的CSV操作封装到一个类中,使得开发者能够更加高效地进行数据处理。 首先,让我们深入了解一下这个PHP类的核心功能。这个类可能包含了以下方法: 1. **...
4. **图像变换**:通过ImgCenterDib类,可以实现图像的旋转、缩放、裁剪等几何变换操作,这在图像处理中非常常见。 5. **保存图像**:处理完图像后,ImgCenterDib类能够将修改后的图像数据重新组织成BMP文件格式并...
3. 调用类的方法处理文件上传。 4. 检查返回的错误信息,如果有错误,进行相应处理;如果没有错误,可以继续处理上传后的文件。 在实际项目中,使用这样的类库可以大大减少文件上传功能的开发时间,同时提高代码...
在PHP中,多文件上传是一项常见的功能,用于处理用户通过网页表单提交的多个文件。在给定的代码中,定义了一个名为`Upload`的类,这个类专门用于实现多文件上传并支持生成缩略图的功能。以下是这个类中包含的关键...
本项目“JAVA对音频文件处理程序”聚焦于读取音频文件,执行降分贝操作,然后将处理后的音频保存为新的文件。这里我们将深入探讨相关的关键知识点。 首先,Java提供了一个强大的包`javax.sound.sampled`来处理音频...
4. **临时文件处理**:当文件上传成功后,它们首先会被存储在服务器的临时目录中。类应包含方法将这些临时文件移动到指定的存储位置,并在此过程中可能需要重命名文件以避免冲突。 5. **错误处理**:在上传过程中...
`WriteFile.cpp`和`WriteFile.h`很可能是主文件处理类的实现和声明。在MFC中,文件操作通常通过`CFile`类进行,这个类提供了打开、读取、写入和关闭文件的功能。`WriteFile`类可能扩展了`CFile`,增加了特定的文件...
这个"比较全面的php文件上传类"是一个专门处理文件上传的工具,它封装了相关操作,提供了更方便、安全的方式来处理文件上传过程。下面将详细讲解这个类库的核心知识点及其在实际开发中的应用。 首先,类库的设计...
"超级文件,目录处理类"可能是一个定制的工具集,封装了常见的文件和目录操作,以提高效率和易用性。这种类库可能包含一些实用方法,如批量移动、复制文件,或者检查文件是否存在、文件大小等。 4. 源码分析: ...
"实用的PHP文件操作类"就是这样一个工具,它旨在简化常见的文件处理任务。下面我们将深入探讨PHP文件操作类的关键概念和功能。 1. **类库介绍** 这个类库很可能包含了若干个PHP类,每个类都专注于一个特定的文件或...
### ASP.NET 文件处理详解 #### 一、文件操作概述 在任何编程技术中,文件操作都是非常基础且重要的功能。ASP.NET作为一种广泛使用的Web应用程序开发框架,利用.NET平台的强大功能为开发者提供了丰富的文件处理...
多年前自己整理的类库合集,仍了可惜了,分享给 C# .net...包含文件类、DES 加密类、MD5加密类、RC2加密类、Rijndael加密类、RSA加密类、三重DES 对称加密类、转换类、Sql数据库处理类、验证类、控件处理类、日期时间类
一个强大的PHP文件上传类能够简化这一过程,处理各种安全问题,并提供灵活性来满足不同的项目需求。下面我们将深入探讨PHP文件上传的核心概念以及如何构建或使用这样的强大类。 一、PHP文件上传基础 1. **表单设置...