`
竹临仙
  • 浏览: 37851 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

文件的相关操作 转转转

阅读更多
package com.Utils;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Random;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class FileUtils   {
    private static Log log = LogFactory.getLog(FileUtils.class);
    private FileUtils() {}
   
    /**
     * 获取随机的文件名称
     * @param seed    随机种子
     * @return
     */
    public static String getRandomFileName(String seed) {
        byte[] ra = new byte[100];
        new Random().nextBytes(ra);
        StringBuilder build = new StringBuilder("");
        for (int i = 0; i < ra.length; i++) {
            build.append(Byte.valueOf(ra[i]).toString());
        }
        String currentDate = Long.valueOf(new Date().getTime()).toString();
        seed = seed + currentDate + build.toString();
        return MD5.encode((seed).toLowerCase());
    }
   
    /**
     * 列出所有当前层的文件和目录
     *
     * @param dir            目录名称
     * @return fileList    列出的文件和目录
     */
    public static File[] ls(String dir) {
        return new File(dir).listFiles();
    }
   
    /**
     * 根据需要创建文件夹
     *
     * @param dirPath 文件夹路径
     * @param del    存在文件夹是否删除  false 不创建文件夹..
     */
    public static boolean mkdir(String dirPath,boolean del) {
    boolean rs = false;
        File dir = new File(dirPath);
        //判断文件夹是否存在..
        if(dir.exists()) {
            if(del){
                dir.delete();
            }else{
            return false;
            }
        }
        dir.mkdirs();
        return true;
    }
   
    /**
     * 删除文件和目录
     *
     * @param path
     * @throws Exception
     */
    public static void rm(String path) throws Exception{
        if(log.isDebugEnabled())
            log.debug("需要删除的文件: " + path);
        File file = new File(path);
       
        //判断文件是否存在,,不存在不用删除
        if(!file.exists()) {
            if(log.isWarnEnabled())
                log.warn("文件<" + path + ">不存在");
            return;
        }
        //判断这个文件是否是一个文件夹..
        if(file.isDirectory()) {
        //是一个文件夹....
        //listFiles()把所有文件夹下内容列..
            File[] fileList = file.listFiles();
            if(fileList == null || fileList.length == 0) {
            //如果文件夹空,直接删除..
                file.delete();
            } else {
            //如果文件夹不空,把内容一个一个取出来,迭归判断...
            //自己调用自己迭归..
                for (File _file : fileList) {
                //把文件 内容绝对地址
                    rm(_file.getAbsolutePath());
                }
            }
        file.delete();
        } else {
        //如果你删除的是一个文件..
            file.delete();
        }
    }
   
    /**
     * 移动文件
     *
     * @param source     源文件
     * @param target         目标文件
     * @param cache        文件缓存大小
     * @throws Exception
     */
    public static void mv(String source,String target,int cache) throws Exception {
        if(source.trim().equals(target.trim()))
            return;
        byte[] cached = new byte[cache];
        FileInputStream fromFile = new FileInputStream(source);
        FileOutputStream toFile = new FileOutputStream(target);
        while(fromFile.read(cached) != -1) {
            toFile.write(cached);
        }
        toFile.flush();
        toFile.close();
        fromFile.close();
        new File(source).deleteOnExit();
    }
   
    /**
     * 文件复制
     * @param source
     * @param target
     */
    public static void cp(String source,String target){
    FileInputStream fin = null;
    FileOutputStream fout = null;
    //提升性能用一个数组;
    byte[] cache = new byte[1024 * 8];
    try {
fin = new FileInputStream(source);
fout = new FileOutputStream(target);
int size = fin.read(cache);
while(size != -1){
fout.write(cache, 0, size);
size = fin.read(cache);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(fout != null){
try {
fout.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fin != null){
try {
fin.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}
    }
    /**
     * 把属性文件转换成Map
     *
     * @param propertiesFile
     * @return
     * @throws Exception
     */
    public static final Map<String, String> getPropertiesMap(String propertiesFile) throws Exception{
        Properties properties = new Properties();
        FileInputStream inputStream = new FileInputStream(propertiesFile);
        properties.load(inputStream);
        Map<String, String> map = new HashMap<String, String>();
        Set<Object> keySet = properties.keySet();
        for (Object key : keySet) {
            map.put((String)key, properties.getProperty((String)key));
        }
        return map;
    }
   
    @SuppressWarnings("unchecked")
    public static final Map<String, String> getPropertiesMap(Class clazz,String fileName) throws Exception{
        Properties properties = new Properties();
        InputStream inputStream = clazz.getResourceAsStream(fileName);
        if(inputStream == null)
            inputStream = clazz.getClassLoader().getResourceAsStream(fileName);
        properties.load(inputStream);
        Map<String, String> map = new HashMap<String, String>();
        Set<Object> keySet = properties.keySet();
        for (Object key : keySet) {
            map.put((String)key, properties.getProperty((String)key));
        }
        return map;
    }
   
    /**
     * 把属性文件转换成Map
     *
     * @param inputStream
     * @return
     * @throws Exception
     */
    public static final Map<String, String> getPropertiesMap(InputStream inputStream) throws Exception{
        Properties properties = new Properties();
        properties.load(inputStream);
        Map<String, String> map = new HashMap<String, String>();
        Set<Object> keySet = properties.keySet();
        for (Object key : keySet) {
            map.put((String)key, properties.getProperty((String)key));
        }
        return map;
    }
   
    /**
     * 把文本文件转换成String
     *
     * @param fullPath
     * @return
     * @throws Exception
     */
    public static String readFile(String fullPath) throws Exception{
        BufferedReader reader = new BufferedReader(new FileReader(fullPath));
        if(reader == null)
            return null;
        StringBuilder builder = new StringBuilder("");
        String line = null;
        while((line = reader.readLine()) != null) {
            builder.append(line + "\n");
        }
        return builder.toString();
    }
   
    /**
     * 获取资源文件流
     *
     * @param clazz
     * @param name
     * @return
     */
    @SuppressWarnings("unchecked")
    public static InputStream getResourceAsStream(Class clazz,String name) {
        try {
            InputStream inputStream = clazz.getResourceAsStream(name);
            if(inputStream == null)
                inputStream = clazz.getClassLoader().getResourceAsStream(name);
            return inputStream;
        } catch (Exception e) {
            if(log.isWarnEnabled())
                log.warn("获取资源文件失败", e);
            return null;
        }
    }
   
    /**
     * 文件重命名
     * @param path
     * @param oldname
     * @param newname
     */
    public static void renameFile(String path,String oldname,String newname){ 
             if(!oldname.equals(newname)){//新的文件名和以前文件名不同时,才有必要进行重命名 
                 File oldfile=new File(path+"/"+oldname); 
                 File newfile=new File(path+"/"+newname); 
                 if(newfile.exists())//若在该目录下已经有一个文件和新文件名相同,则不允许重命名 
                     System.out.println(newname+"已经存在!"); 
                 else{ 
                     oldfile.renameTo(newfile); 
                 } 
             } 
    }            
//            
    public static void main(String[] args){
//    File [] lists = ls(".");
//    for(File f:lists){
//    System.out.println(f.getName());
//    }
    //boolean is = mkdir("a",false);
    //System.out.println(is);
//    try{
//    rm("a");
//    }catch(Exception e){
//    e.printStackTrace();
//    }
//    try{
//    long start = System.currentTimeMillis();
//    mv("f://AdbeRdr920_zh_CN.exe","e://c.exe",1024 *;
//    long end = System.currentTimeMillis();
//    System.out.println(end - start);
//    }catch(Exception e){
//    e.printStackTrace();
//    }
    }


   
分享到:
评论

相关推荐

    bin文件转s19文件工具

    这样的批处理文件简化了操作,使得用户无需手动输入命令就能完成转换。 在实际应用中,这个工具可能适用于以下场景: 1. **固件更新**:当固件以BIN格式提供,但编程器或烧录器需要S19格式时,此工具可以方便地...

    bin文件转txt文件工具

    在使用"bin文件转txt文件工具"时,用户可以加载bin文件到软件界面,然后执行转换操作。由于该工具支持任意大小的文件,这意味着无论bin文件有多大,只要内存和硬盘空间允许,都能进行转换。这对于处理大型数据集或者...

    气象资料A文件转EXCEL文件转换

    转换过程通常需要借助专门的转换工具,如压缩包中的"A文件转Excel.exe"。这个程序可能是设计用来解析A文件格式,并将其数据导出到Excel工作簿中。使用这类工具时,用户需要按照软件的指引,选择要转换的A文件,然后...

    nc文件转txt

    在Windows系统中,需要将`netcdf.dll`文件复制到`system32`目录下,这样系统才能识别并执行与NetCDF相关的操作。 2. **配置CMD路径**:确保所有相关的转换工具(如ncdump或其他第三方工具)已经下载并放入命令行...

    las文件操作、格式转换

    它提供了丰富的命令行工具,用于执行各种LAS文件的操作和格式转换,如点云过滤、分类、裁剪、合并、统计分析等。`Lastool` 的强大之处在于其灵活性和高效性,使得用户能够在命令行环境中快速处理大规模的激光雷达...

    DXF文件转XYZ文件

    "adinit26.dat"可能是一个AutoCAD相关的初始化配置文件,但在这个特定的上下文中,它似乎不是直接用于转换过程,可能是遗留的或者与转换工具有关的其他支持文件。 "dxf2xyz.exe"是可执行文件,它是实际进行DXF到XYZ...

    c#操作LibreOffice组件进行文件转换

    本篇文章将深入探讨如何使用C#操作LibreOffice组件来实现文件格式之间的转换,包括Word、HTML、Excel、PDF以及图像等。 LibreOffice是一款开源的办公套件,它提供了API接口,允许开发者通过编程方式与LibreOffice...

    PDB文件转TXT文件工具

    获取PDB文件后,按照以下步骤操作: 1. **运行工具**:找到"PDB-TXT.exe",双击运行。如果需要在命令行环境中使用,可以打开命令提示符或PowerShell,并定位到该可执行文件的目录。 2. **输入参数**:在命令行界面...

    python json文件转txt文件,批处理json文件转换成一个txt文件

    标题中的"python json文件转txt文件,批处理json文件转换成一个txt文件",指的是使用Python编写脚本来读取多个JSON文件,解析其内容,并将数据写入到TXT文件中。这通常涉及到以下步骤: 1. **导入必要的库**:首先...

    txt文件转换为bin文件

    在Windows上,还有许多图形界面工具可以进行此操作,比如Hex Editors(十六进制编辑器),如HxD,它可以读取和编辑二进制文件,同时也能导出为其他格式,包括BIN。 在进行转换时,需要注意以下几点: 1. 数据的含义...

    hex文件转bin文件工具

    标题提及的“hex文件转bin文件工具”是一个专门用于将Intel HEX格式(HEX)文件转换为二进制格式(BIN)的工具。Intel HEX是一种文本格式,用于存储可编程设备的编程数据,如微控制器或EPROM。它以ASCII字符形式记录...

    GNSS: d文件转成o文件

    综上所述,d 文件转 o 文件是 GNSS 数据处理中的一个重要环节,它涉及到数据预处理、坐标转换和观测值计算等一系列复杂操作。理解这个过程并掌握相应的工具和方法,对于高效利用 GNSS 数据进行各种应用是至关重要的...

    文件目录结构转文本网页(把文件列表转成html格式) V4.0绿色版

    《文件目录结构转文本网页:技术解析与应用》 在现代数字生活中,管理和呈现大量文件目录结构变得日益重要。为了方便浏览和分享这些信息,将文件目录结构转化为文本网页,尤其是HTML格式,成为了一种高效的方式。...

    TXT文本转成BIN文件

    在IT领域,转换文件格式是常见的操作之一,例如将TXT文本转换为BIN文件。TXT文件是一种常见的纯文本格式,用于存储人类可读的数据,而BIN文件通常代表二进制文件,可能包含计算机程序、数据或其他特定格式的信息。...

    adf文件转TIFF文件

    本话题主要涉及"adf文件转TIFF文件",这是一种将特定的数据格式转换为广泛使用的图像格式的过程。下面我们将深入探讨ADF(Arc/Info Binary Grid)文件和TIFF(Tagged Image File Format)文件,以及如何进行这种转换...

    hex文件转二进制工具

    压缩包子文件的文件名称“HEXתBIN.exe”暗示这可能是一个Windows操作系统下的可执行文件,它的功能就是执行HEX到二进制的转换操作。用户只需运行这个程序,并提供输入的HEX文件路径和输出的二进制文件路径,就可以...

    TXT文件转DAT文件(ASCII转BINARY)

    标题"TXT文件转DAT文件(ASCII转BINARY)"表明我们要处理的是两个文件类型:TXT和DAT。TXT文件是纯文本文件,通常使用ASCII编码,而DAT文件则是一个通用术语,可以代表任何类型的二进制数据,不拘泥于特定的文件格式...

    C# 文件转换base64

    在实际项目中,文件转Base64操作通常用于上传文件至服务器,存储在数据库中,或者在网络中以文本形式传输。了解并熟练掌握这一技巧对于C#开发者来说是非常重要的。在标签中提到的"C#文件转base64 文件转换"是一个...

    Bin文件和Hex文件相互转换

    在实际操作中,确保你正确指定了文件路径和名称,避免出现找不到文件的错误。同时,转换过程中需要注意数据的完整性,确保转换前后文件的内容没有丢失或被篡改。在某些情况下,可能还需要关注文件的字节顺序,尤其是...

    把hex文件转成ROM_hex

    标题"把hex文件转成ROM_hex"指的就是这个过程。以下将详细介绍如何进行这个转换,并解释相关的工具和技术。 1. HEX文件: HEX文件通常由编译器或汇编器生成,其中包含了程序代码、数据以及地址信息。每个记录都包含...

Global site tag (gtag.js) - Google Analytics