package cn.freeteam.util; import java.awt.Image; import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.awt.image.Raster; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.math.BigDecimal; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipException; import java.util.zip.ZipFile; import java.util.zip.ZipInputStream; import javax.imageio.ImageIO; import net.coobird.thumbnailator.Thumbnails; import com.drew.imaging.jpeg.JpegMetadataReader; import com.drew.imaging.jpeg.JpegProcessingException; import com.drew.metadata.Directory; import com.drew.metadata.Metadata; import com.drew.metadata.MetadataException; import com.drew.metadata.Tag; import com.drew.metadata.exif.ExifDirectory; import com.sun.image.codec.jpeg.ImageFormatException; import com.sun.image.codec.jpeg.JPEGCodec; import com.sun.image.codec.jpeg.JPEGImageEncoder; public class FileUtil { /** * 写文件 * @param f * @param content */ public static void writeFile(File f,String content){ writeFile(f, content,"utf-8"); } /** * 写文件 * @param f * @param content */ public static void writeFile(File f,String content,String encode){ try { if (!f.exists()) { f.createNewFile(); } OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream(f),encode); BufferedWriter utput = new BufferedWriter(osw); utput.write(content); utput.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 写文件 * @param path * @param content */ public static void writeFile(String path, String content,String encode) { File f = new File(path); writeFile(f, content,encode); } /** * 写文件 * @param path * @param content */ public static void writeFile(String path, String content) { File f = new File(path); writeFile(f, content,"utf-8"); } /** * 读取文件 * @param file * @return */ public static String readFile(File file){ return readFile(file,"UTF-8"); } /** * 读取文件 * @param file * @return */ public static String readFile(File file,String encode){ String output = ""; if (file.exists()) { if (file.isFile()) { try { InputStreamReader isr=new InputStreamReader(new FileInputStream(file),encode); BufferedReader input = new BufferedReader(isr); StringBuffer buffer = new StringBuffer(); String text; while ((text = input.readLine()) != null) buffer.append(text + "\n"); output = buffer.toString(); } catch (IOException ioException) { System.err.println("File Error!"); } } else if (file.isDirectory()) { String[] dir = file.list(); output += "Directory contents:\n"; for (int i = 0; i < dir.length; i++) { output += dir[i] + "\n"; } } } else { System.err.println("Does not exist!"); } return output; } /** * 读取文件 * @param fileName * @return */ public static String readFile(String fileName,String encode) { File file = new File(fileName); return readFile(file,encode); } /** * 读取文件 * @param fileName * @return */ public static String readFile(String fileName) { return readFile(fileName,"utf-8"); } /** * 获取目录下所有文件 * @param folder * @return */ public static List<File> getFiles(String folder){ File file=new File(folder); List<File> files=new ArrayList<File>(); if (file.exists()) { File[] sonFiles=file.listFiles(); if (sonFiles!=null && sonFiles.length>0) { for (int i = 0; i < sonFiles.length; i++) { if (!sonFiles[i].isDirectory()) { files.add(sonFiles[i]); } } } } return files; } /** * 获取目录下所有文件夹 * @param folder * @return */ public static List<File> getFolders(String folder){ File file=new File(folder); List<File> files=new ArrayList<File>(); if (file.exists()) { File[] sonFiles=file.listFiles(); if (sonFiles!=null && sonFiles.length>0) { for (int i = 0; i < sonFiles.length; i++) { if (sonFiles[i].isDirectory()) { files.add(sonFiles[i]); } } } } return files; } /** * 判断是否有子目录 * @param folder * @return */ public static boolean hasSonFolder(String folder){ File file=new File(folder); return hasSonFolder(file); } /** * 判断是否有子目录 * @param folder * @return */ public static boolean hasSonFolder(File file){ if (file.exists()) { File[] sonFiles=file.listFiles(); if (sonFiles!=null && sonFiles.length>0) { for (int i = 0; i < sonFiles.length; i++) { if (sonFiles[i].isDirectory()) { return true; } } } } return false; } /** * 创建目录 * @param folder */ public static void mkdir(String folder){ File file=new File(folder); if (!file.exists()) { file.mkdir(); } } /** * 复制文件 * @param src * @param dst */ public static void copy(File src, File dst) { try { int BUFFER_SIZE = 32 * 1024; InputStream in = null; OutputStream out = null; try { in = new FileInputStream(src); out = new FileOutputStream(dst); byte[] buffer = new byte[BUFFER_SIZE]; int count; while ((count = in.read(buffer)) != -1) { out.write(buffer, 0, count); } } finally { if (null != in) { in.close(); } if (null != out) { out.close(); } } } catch (Exception e) { e.printStackTrace(); } } /** * 复制文件夹 * @param sourceDir * @param targetDir * @throws IOException */ public static void copyDirectiory(String sourceDir, String targetDir) throws IOException { if (new File(sourceDir).exists()) { // 新建目标目录 File targetFolder=new File(targetDir); if (!targetFolder.exists()) { targetFolder.mkdirs(); } // 获取源文件夹当前下的文件或目录 File[] file = (new File(sourceDir)).listFiles(); for (int i = 0; i < file.length; i++) { if (file[i].isFile()) { // 源文件 File sourceFile = file[i]; // 目标文件 File targetFile = new File(new File(targetDir).getAbsolutePath() + File.separator + file[i].getName()); copy(sourceFile, targetFile); } if (file[i].isDirectory()) { // 准备复制的源文件夹 String dir1 = sourceDir + "/" + file[i].getName(); // 准备复制的目标文件夹 String dir2 = targetDir + "/" + file[i].getName(); copyDirectiory(dir1, dir2); } } } } /** * 获取扩展名 */ public static String getExt(File src){ if (src!=null) { String name=src.getName(); return name.substring(name.lastIndexOf("."), name.length()); } return ""; } /** * 获取扩展名 */ public static String getExt(String src){ if (src!=null) { return src.substring(src.lastIndexOf("."), src.length()); } return ""; } /** * 删除指定文件 * @param path */ public static void del(String path){ File file=new File(path); deleteFile(file); } /** * 递归删除文件夹下所有文件 * @param file */ public static void deleteFile(File file) { if (file.exists()) { //判断文件是否存在 if (file.isFile()) { //判断是否是文件 file.delete(); //delete()方法 你应该知道 是删除的意思; } else if (file.isDirectory()) { //否则如果它是一个目录 File files[] = file.listFiles(); //声明目录下所有的文件 files[]; for (int i = 0; i < files.length; i++) { //遍历目录下所有的文件 deleteFile(files[i]); //把每个文件 用这个方法进行迭代 } } file.delete(); } } public static void upzip() throws Exception{ File file = new File("D:\\test.zip");//压缩文件 ZipFile zipFile = new ZipFile(file);//实例化ZipFile,每一个zip压缩文件都可以表示为一个ZipFile //实例化一个Zip压缩文件的ZipInputStream对象,可以利用该类的getNextEntry()方法依次拿到每一个ZipEntry对象 ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(file)); ZipEntry zipEntry = null; while ((zipEntry = zipInputStream.getNextEntry()) != null) { String fileName = zipEntry.getName(); File temp = new File("D:\\un\\" + fileName); temp.getParentFile().mkdirs(); OutputStream os = new FileOutputStream(temp); //通过ZipFile的getInputStream方法拿到具体的ZipEntry的输入流 InputStream is = zipFile.getInputStream(zipEntry); int len = 0; while ((len = is.read()) != -1) os.write(len); os.close(); is.close(); } zipInputStream.close(); } }
相关推荐
在Java编程语言中,文件读取是常见的任务,可以用于处理各种类型的数据,如文本、图像、音频等。本文将详细介绍Java中四种不同的文件读取方法:...理解这些基本概念可以帮助你编写出更加高效和灵活的Java文件操作程序。
在Java编程语言中,读取文件是一项常见的操作,尤其是在处理数据、日志文件或配置信息时。本文将详细解析如何使用Java读取文本文件,基于提供的代码示例,深入探讨其工作原理及最佳实践。 ### Java读取文本文件的...
在提供的压缩包中,有一个名为"ucanaccess-2.0.9.2.jar"的文件,这是UCanAccess驱动,它是一个开源的Java库,允许Java应用程序直接操作.MDB和.ACCDB格式的Access数据库,而无需安装任何Microsoft软件。要使用这个...
为了提高效率,可以考虑使用`java.nio`包中的缓冲和通道API来提高文件读取速度。 以下是一个简化的代码示例,展示了如何开始读取STL文件: ```java import java.io.BufferedReader; import java.io.FileReader; ...
本文将基于提供的代码片段,详细介绍如何使用Java语言来读取Shapefile文件中的几何信息以及DBF文件中的属性数据。 #### Java读取Shapefile文件的基础知识 1. **Shapefile的基本结构**: - **.shp文件**:包含几何...
在Java编程中,读取本地SQLite数据库(.db文件)是一项常见的任务,特别是在移动应用开发或者需要离线存储数据的场景下。SQLite是一种轻量级的、开源的关系型数据库,它不需要单独的服务器进程,可以直接在应用程序...
在Java编程中,将数据从TXT文件读取并导入MySQL数据库是一项常见的任务,涉及到文件操作、字符串处理以及数据库交互等多个知识点。以下是对这些关键概念的详细解释: 1. **文件操作**:`FileOper.java`可能包含了对...
在Java编程环境中,读取PDF文件中的内容是一个常见的任务,特别是在处理文档自动化或者数据分析时。PDF(Portable Document Format)是一种跨平台的文件格式,用于精确地保留文档的格式和内容。下面将详细介绍如何...
1. **导入必要的库**:首先,在Java代码中需要导入`ucar.nc2.grib.collection.Grib2Iosp`和`ucar.nc2.NetcdfFile`等相关类,这些类提供了读取GRIB2文件的接口。 2. **打开GRIB2文件**:使用`NetcdfFile.open`方法,...
在IT行业中,尤其是在项目管理领域,能够有效地处理和解析微软的Project文件是非常重要的技能...同时,提供的代码示例和"Msoffice"压缩包中的project文件可以作为实践操作的起点,帮助开发者更好地理解和应用这些技术。
下面我们将深入探讨如何在Java中正确地读取和写入CSV文件,以及解决中文乱码的问题。 1. **字符编码的理解**: - 在处理中文字符时,必须确保使用正确的字符编码,例如UTF-8。UTF-8是一种广泛支持的编码格式,可以...
在Java编程环境中,读取DLT645协议文件通常涉及到智能电表通讯,这是一个用于电力系统中远程抄表的标准。DLT645是一种基于串行通信的协议,允许设备(如电表)与主站系统进行数据交换。为了在Java中实现对这种文件的...
在实际开发中,为了提高代码的可复用性和灵活性,我们还可以考虑将这两个工具类整合为一个,提供通用的配置文件读取接口,通过文件扩展名或配置文件内容自动识别是`.properties`还是`.yml`格式,并进行相应的读取...
在Java中,我们可以使用`java.util.Properties`类来读取和操作这些属性。以下是一个基本的示例,演示了如何加载属性文件并获取其中的值: ```java import java.io.FileInputStream; import java.io.IOException; ...
Java 读取 Excel 文件是许多开发任务中的常见需求,Apache POI 是一个广泛使用的开源库,专门用于处理 Microsoft Office 格式的文件,包括 Excel。在本案例中,提供的压缩包 "poi.zip" 包含了两个子文件:poi-bin-...
在这个特定的项目中,"Java 文件分行读取小程序" 是一个简单的应用,它使用了`BufferedReader`类来逐行读取文本文件的内容。这个程序对于处理大文件尤其有用,因为它避免一次性加载整个文件到内存,而是分批读取,...
在Java中,读取元数据通常涉及对文件、网络资源或数据库记录的操作。 1. **Java IO与元数据** Java的`java.io.File`类提供了获取文件元数据的方法,如`length()`获取文件大小,`lastModified()`获取最后修改时间,...
总结来说,`java.io.File`类是Java中处理文件和目录的核心工具,配合自定义的`FileUtil`类,可以方便地进行各种文件操作,包括创建、删除、读取、写入等。熟练掌握`File`类和`FileUtil`类的使用,将使你在Java开发中...
这个主题,"Java 大文件读取排序",主要关注如何高效地操作那些超出内存容量的大文件,同时保持程序的性能和稳定性。在本文中,我们将探讨几个关键的技术和策略,它们对于理解和实现大文件的读取排序至关重要。 ...
这个库允许用户在Java程序中创建、读取和修改NetCDF文件,支持包括CF(Climate and Forecasting)在内的多种数据规范。使用该库的基本步骤如下: 1. 引入依赖:在项目中添加netcdf-4.3.22.jar作为外部库或通过Maven...