




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
package com.example.picturehuancun;import java.io.BufferedInputStream;import java.io.BufferedWriter;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.FileWriter;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.RandomAccessFile;import java.util.Enumeration;import java.util.zip.ZipEntry;import java.util.zip.ZipFile;import java.util.zip.ZipInputStream;import java.util.zip.ZipOutputStream;import android.content.ContentResolver;import android.content.Context;import .Uri;import android.os.Environment;import android.os.ParcelFileDescriptor;public class FileHelper private static final int FILE_BUFFER_SIZE = 51200;/判断文件是否存在public static boolean fileIsExist(String filePath) if (filePath = null | filePath.length() 1) return false;File f = new File(filePath);if (!f.exists() return false;return true;/读取文件流public static InputStream readFile(String filePath) if (null = filePath) return null;InputStream is = null;try if (fileIsExist(filePath) File f = new File(filePath);is = new FileInputStream(f); else return null; catch (Exception ex) return null;return is;/创建public static boolean createDirectory(String filePath)if (null = filePath) return false;File file = new File(filePath);if (file.exists()return true;return file.mkdirs();/删除public static boolean deleteDirectory(String filePath) if (null = filePath) return false;File file = new File(filePath);if (file = null | !file.exists() return false;if (file.isDirectory() File list = file.listFiles();for (int i = 0; i list.length; i+) if (listi.isDirectory() deleteDirectory(listi.getAbsolutePath(); else listi.delete();file.delete();return true;/写入文件public static boolean writeFile(String filePath, InputStream inputStream) if (null = filePath | filePath.length() 1) return false;try File file = new File(filePath); if (file.exists() deleteDirectory(filePath); String pth = filePath.substring(0, filePath.lastIndexOf(/); boolean ret = createDirectory(pth); if (!ret) return false; boolean ret1 = file.createNewFile(); if (!ret) return false; FileOutputStream fileOutputStream = new FileOutputStream(file); byte buf = new byte1024;int c = inputStream.read(buf);while(-1 != c) fileOutputStream.write(buf, 0, c);c = inputStream.read(buf); fileOutputStream.flush();fileOutputStream.close();return true; catch (Exception e) e.printStackTrace();return false;public static boolean writeFile(String filePath, String fileContent) return writeFile(filePath, fileContent, false);public static boolean writeFile(String filePath, String fileContent, boolean append) if (null = filePath | fileContent = null | filePath.length() 1 | fileContent.length() 1) return false;try File file = new File(filePath); if (!file.exists() if (!file.createNewFile() return false; BufferedWriter output = new BufferedWriter(new FileWriter(file, append); output.write(fileContent); output.flush(); output.close(); catch (IOException ioe) return false;return true;/得到文件的大小public static long getFileSize(String filePath) if (null = filePath) return 0;File file = new File(filePath);if (file = null | !file.exists() return 0;return file.length();/得到文件的创建时间public static long getFileModifyTime(String filePath) if (null = filePath) return 0;File file = new File(filePath);if (file = null | !file.exists() return 0;return file.lastModified();/设置文件的时间public static boolean setFileModifyTime(String filePath, long modifyTime) if (null = filePath) return false;File file = new File(filePath);if (file = null | !file.exists() return false;return file.setLastModified(modifyTime);/复制文件public static boolean copyFile(ContentResolver cr, String fromPath, String destUri) if (null = cr | null = fromPath | fromPath.length() 1 | null = destUri | destUri.length() 1) return false;InputStream is = null;OutputStream os = null;try is = new FileInputStream(fromPath);if (null = is) return false;/ check output uriString path = null;Uri uri = null;String lwUri = destUri.toLowerCase();if (lwUri.startsWith(content:/) uri = Uri.parse(destUri); else if (lwUri.startsWith(file:/) uri = Uri.parse(destUri);path = uri.getPath(); else path = destUri;/ open output if (null != path) File fl = new File(path); String pth = path.substring(0, path.lastIndexOf(/); File pf = new File(pth); if (pf.exists() & !pf.isDirectory() pf.delete(); pf = new File(pth+File.separator); if (!pf.exists() if (!pf.mkdirs() pf = new File(path); if (pf.exists() if (pf.isDirectory() deleteDirectory(path); else pf.delete(); os = new FileOutputStream(path);fl.setLastModified(System.currentTimeMillis(); else os = new ParcelFileDescriptor.AutoCloseOutputStream(cr.openFileDescriptor(uri, w);/ copy filebyte dat = new byte1024;int i = is.read(dat);while(-1 != i) os.write(dat, 0, i);i = is.read(dat);is.close();is = null;os.flush();os.close();os = null;return true; catch(Exception ex) finally if(null != is) tryis.close(); catch(Exception ex) ;if(null != os) tryos.close(); catch(Exception ex) ;return false;/读取文件转换为二进制数据public static byte readAll(InputStream is) throws Exception ByteArrayOutputStream baos = new ByteArrayOutputStream(1024);byte buf = new byte1024;int c = is.read(buf);while(-1 != c) baos.write(buf, 0, c);c = is.read(buf);baos.flush();baos.close();return baos.toByteArray(); public static byte readFile(Context ctx, Uri uri) if(null = ctx | null = uri) return null;InputStream is = null;String scheme = uri.getScheme().toLowerCase();if (scheme.equals(file) is = readFile(uri.getPath();try is = ctx.getContentResolver().openInputStream(uri);if(null = is) return null;byte bret = readAll(is);is.close(); is = null;return bret; catch(FileNotFoundException fne) catch(Exception ex) finally if (null != is) try is.close(); catch(Exception ex) ;return null;public static boolean writeFile(String filePath, byte content) if(null = filePath | null = content) return false;FileOutputStream fos = null;tryString pth = filePath.substring(0, filePath.lastIndexOf(/); File pf = null; pf = new File(pth); if(pf.exists() & !pf.isDirectory() pf.delete(); pf = new File(filePath); if(pf.exists() if(pf.isDirectory() FileHelper.deleteDirectory(filePath); else pf.delete(); pf = new File(pth+File.separator); if (!pf.exists() if (!pf.mkdirs() fos = new FileOutputStream(filePath);fos.write(content);fos.flush();fos.close(); fos = null;pf.setLastModified(System.currentTimeMillis();return true; catch(Exception ex) finally if(null != fos) try fos.close(); catch(Exception ex) ;return false;/zip文件/*ZIP file operation*/public static boolean readZipFile(String zipFileName, StringBuffer crc) try ZipInputStream zis = new ZipInputStream(new FileInputStream(zipFileName);ZipEntry entry;while (entry = zis.getNextEntry() != null) long size = entry.getSize();crc.append(entry.getCrc() + , size: + size); zis.close(); catch (Exception ex) return false;return true;public static byte readGZipFile (String zipFileName) if (fileIsExist(zipFileName) try FileInputStream fin = new FileInputStream(zipFileName);int size;byte buffer = new byte1024;ByteArrayOutputStream baos = new ByteArrayOutputStream();while (size = fin.read(buffer, 0, buffer.length) != -1) baos.write(buffer, 0, size);return baos.toByteArray(); catch (Exception ex) return null;public static boolean zipFile(String baseDirName, String fileName, String targerFileName) throws IOException if (baseDirName = null | .equals(baseDirName) return false; File baseDir = new File(baseDirName); if (!baseDir.exists() | !baseDir.isDirectory() return false; String baseDirPath = baseDir.getAbsolutePath(); File targerFile = new File(targerFileName); ZipOutputStream out = new ZipOutputStream(new FileOutputStream(targerFile); File file = new File(baseDir, fileName); boolean zipResult = false; if (file.isFile() zipResult = fileToZip(baseDirPath, file, out); else zipResult = dirToZip(baseDirPath, file, out); out.close(); return zipResult; public static boolean unZipFile(String fileName, String unZipDir) throws Exception File f = new File(unZipDir);if (!f.exists() f.mkdirs();BufferedInputStream is = null;ZipEntry entry;ZipFile zipfile = new ZipFile(fileName);Enumeration enumeration = zipfile.entries();byte data = new byteFILE_BUFFER_SIZE;while (enumeration.hasMoreElements() entry = (ZipEntry)enumeration.nextElement();if (entry.isDirectory() File f1 = new File(unZipDir + / + entry.getName();if (!f1.exists() f1.mkdirs(); else is = new BufferedInputStream(zipfile.getInputStream(entry);int count;String name = unZipDir + / + entry.getName();RandomAccessFile m_randFile = null;File file = new File(name);if (file.exists() file.delete();file.createNewFile();m_randFile = new RandomAccessFile(file, rw);int begin = 0;while (count = is.read(data, 0, FILE_BUFFER_SIZE) != -1) try m_randFile.seek(begin); catch (Exception ex) m_randFile.write(data, 0, count);begin = begin + count;file.delete();m_randFile.close();is.close();return true;private static boolean fileToZip(String baseDirPath, File file, ZipOutputStream out) throws IOException FileInputStream in = null; ZipEntry entry = null; byte buffer = new byteFILE_BUFFER_SIZE; int bytes_read; try in = new FileInputStream(file); entry = new ZipEntry(getEntryName(baseDirPath, file); out.putNextEntry(entry); while (b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年从线上数据看宠物品牌竞争格局和618战况-解数咨询
- 2025年特岗教师招聘面试初中数学专业基础知识解析与预测题
- 2025年热切割技术入门与提高模拟题集
- 良性前列腺增生的护理查房1
- 新解读《GB-T 36763-2018电磁屏蔽用硫化橡胶通 用技术要求》
- 陕西省安康市2024-2025学年高一下学期7月期末物理试题(含答案)
- 新解读《GB-T 35865-2018粮油检验 稻谷整精米率测定 图像分析法》
- 用电和消防知识培训课件报道
- 生物安全知识培训课件制药厂
- 2025年小学数学毕业升学考试易错题型精讲模拟试卷
- 护理副高职称答辩5分钟简述范文
- 幼小衔接资料合集汇总
- GB/T 42195-2022老年人能力评估规范
- GB/T 4909.4-2009裸电线试验方法第4部分:扭转试验
- GB/T 15155-1994滤波器用压电陶瓷材料通用技术条件
- 复变函数与积分变换全套课件
- 做一名优秀教师课件
- 企业标准编写模板
- 商场开荒保洁计划书
- DBJ 53-T-46-2012 云南省城镇道路及夜景照明工程施工验收规程
- 西方文明史(第五版)英文版全书ppt完整版课件整本书电子教案最全教学教程
评论
0/150
提交评论