`
maria3905
  • 浏览: 22546 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

java中文件的读取操作帮助类

 
阅读更多
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编程语言中,读取文件是一项常见的操作,尤其是在处理数据、日志文件或配置信息时。本文将详细解析如何使用Java读取文本文件,基于提供的代码示例,深入探讨其工作原理及最佳实践。 ### Java读取文本文件的...

    STL.zip_java读取stl_stl读取 java

    为了提高效率,可以考虑使用`java.nio`包中的缓冲和通道API来提高文件读取速度。 以下是一个简化的代码示例,展示了如何开始读取STL文件: ```java import java.io.BufferedReader; import java.io.FileReader; ...

    java读取*.mdb文件数据

    在提供的压缩包中,有一个名为"ucanaccess-2.0.9.2.jar"的文件,这是UCanAccess驱动,它是一个开源的Java库,允许Java应用程序直接操作.MDB和.ACCDB格式的Access数据库,而无需安装任何Microsoft软件。要使用这个...

    java读取本地.db文件实例

    在Java编程中,读取本地SQLite数据库(.db文件)是一项常见的任务,特别是在移动应用开发或者需要离线存储数据的场景下。SQLite是一种轻量级的、开源的关系型数据库,它不需要单独的服务器进程,可以直接在应用程序...

    java读取shp文件代码

    本文将基于提供的代码片段,详细介绍如何使用Java语言来读取Shapefile文件中的几何信息以及DBF文件中的属性数据。 #### Java读取Shapefile文件的基础知识 1. **Shapefile的基本结构**: - **.shp文件**:包含几何...

    java算法,从txt文件中读取数据录入mysql

    在Java编程中,将数据从TXT文件读取并导入MySQL数据库是一项常见的任务,涉及到文件操作、字符串处理以及数据库交互等多个知识点。以下是对这些关键概念的详细解释: 1. **文件操作**:`FileOper.java`可能包含了对...

    java 读取PDF文件中的内容

    在Java编程环境中,读取PDF文件中的内容是一个常见的任务,特别是在处理文档自动化或者数据分析时。PDF(Portable Document Format)是一种跨平台的文件格式,用于精确地保留文档的格式和内容。下面将详细介绍如何...

    java读取grib2文件

    1. **导入必要的库**:首先,在Java代码中需要导入`ucar.nc2.grib.collection.Grib2Iosp`和`ucar.nc2.NetcdfFile`等相关类,这些类提供了读取GRIB2文件的接口。 2. **打开GRIB2文件**:使用`NetcdfFile.open`方法,...

    java读写csv文件,中文乱码问题

    下面我们将深入探讨如何在Java中正确地读取和写入CSV文件,以及解决中文乱码的问题。 1. **字符编码的理解**: - 在处理中文字符时,必须确保使用正确的字符编码,例如UTF-8。UTF-8是一种广泛支持的编码格式,可以...

    通过java导入读取微软项目管理文件(配套代码和导入project文件)

    在IT行业中,尤其是在项目管理领域,能够有效地处理和解析微软的Project文件是非常重要的技能...同时,提供的代码示例和"Msoffice"压缩包中的project文件可以作为实践操作的起点,帮助开发者更好地理解和应用这些技术。

    读取配置文件工具类.rar

    在实际开发中,为了提高代码的可复用性和灵活性,我们还可以考虑将这两个工具类整合为一个,提供通用的配置文件读取接口,通过文件扩展名或配置文件内容自动识别是`.properties`还是`.yml`格式,并进行相应的读取...

    java读取属性文件

    在Java中,我们可以使用`java.util.Properties`类来读取和操作这些属性。以下是一个基本的示例,演示了如何加载属性文件并获取其中的值: ```java import java.io.FileInputStream; import java.io.IOException; ...

    poi.zip java读取excel文件

    Java 读取 Excel 文件是许多开发任务中的常见需求,Apache POI 是一个广泛使用的开源库,专门用于处理 Microsoft Office 格式的文件,包括 Excel。在本案例中,提供的压缩包 "poi.zip" 包含了两个子文件:poi-bin-...

    Java读取netcdf文件和生成等值线的jar_netcdf_wContour

    这个库允许用户在Java程序中创建、读取和修改NetCDF文件,支持包括CF(Climate and Forecasting)在内的多种数据规范。使用该库的基本步骤如下: 1. 引入依赖:在项目中添加netcdf-4.3.22.jar作为外部库或通过Maven...

    Java 文件分行读取小程序

    在这个特定的项目中,"Java 文件分行读取小程序" 是一个简单的应用,它使用了`BufferedReader`类来逐行读取文本文件的内容。这个程序对于处理大文件尤其有用,因为它避免一次性加载整个文件到内存,而是分批读取,...

    java读取dlt645所需文件

    在Java编程环境中,读取DLT645协议文件通常涉及到智能电表通讯,这是一个用于电力系统中远程抄表的标准。DLT645是一种基于串行通信的协议,允许设备(如电表)与主站系统进行数据交换。为了在Java中实现对这种文件的...

    java读取metadata元信息

    在Java中,读取元数据通常涉及对文件、网络资源或数据库记录的操作。 1. **Java IO与元数据** Java的`java.io.File`类提供了获取文件元数据的方法,如`length()`获取文件大小,`lastModified()`获取最后修改时间,...

    java 文件操作类

    总结来说,`java.io.File`类是Java中处理文件和目录的核心工具,配合自定义的`FileUtil`类,可以方便地进行各种文件操作,包括创建、删除、读取、写入等。熟练掌握`File`类和`FileUtil`类的使用,将使你在Java开发中...

    Java 大文件读取排序

    这个主题,"Java 大文件读取排序",主要关注如何高效地操作那些超出内存容量的大文件,同时保持程序的性能和稳定性。在本文中,我们将探讨几个关键的技术和策略,它们对于理解和实现大文件的读取排序至关重要。 ...

Global site tag (gtag.js) - Google Analytics