Java一个简单的文件工具集

class FileUtils
{
    //文件目录下文件总数目
    public static int fileNumber(File dir)
    {
        int filenumber = 0;
        if(dir.exists())
        {
            for(File file:dir.listFiles())
            {
                if(file.isDirectory())
                {
                    filenumber = filenumber+fileNumber(file);
                }
                else
                {
                    filenumber++;
                }
            }
        }
        return filenumber;
    }

    //判断文件是否为图片
    public static boolean isImage(File imgFilePath)
    {
        try
        {
            FileInputStream imgfis = new FileInputStream(imgFilePath);
            byte []imgbyte = new byte[imgfis.available()];
            if((imgfis.read(imgbyte))!=-1)
            {
                if(imgbyte[0] == (byte) ‘G‘ && imgbyte[1] == (byte) ‘I‘ && imgbyte[2] == (byte) ‘F‘)
                {
                    return true;
                }
                else if(imgbyte[1] == (byte) ‘P‘ && imgbyte[2] == (byte) ‘N‘ && imgbyte[3] == (byte) ‘G‘)
                {
                    return true;
                }
                else if(imgbyte[6] == (byte) ‘J‘ && imgbyte[7] == (byte) ‘F‘ && imgbyte[8] == (byte) ‘I‘&& imgbyte[9] == (byte) ‘F‘)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }
        }catch(Exception e)
        {
            System.out.println(e.toString());
            return false;
        }
        return false;
    }

    //返回该目录下所有文件的文件数组
    public static File[] listAllDirectory(File dir)
    {
        if(dir!=null&&dir.exists())
        {
            File []finalfile = new File[fileNumber(dir)];
            int markfile =0;
            int fileln=0;
            File files[] = dir.listFiles();
            for(int i=0;i<files.length;i++)
            {
                if(files[i].isDirectory())
                {
                    listAllDirectory(files[i]);
                }
                else
                {
                    finalfile[markfile++]=files[i];
                }
            }
            return finalfile;
        }
        else
        {
            return null;
        }
    }

    //复制文件(用文件通道)
    public static void copyFile(File oldFileAbsolutePath,File newFilePath)
    {
        File newFileAbsolutePath = new File(newFilePath,oldFileAbsolutePath.getName());
        FileInputStream fi = null;
        FileOutputStream fo = null;
        FileChannel in = null;
        FileChannel out = null;
        try {
            fi = new FileInputStream(oldFileAbsolutePath);
            fo = new FileOutputStream(newFileAbsolutePath);
            in = fi.getChannel();
            out = fo.getChannel();
            in.transferTo(0, in.size(), out);
        } catch (IOException e)
            {
                e.printStackTrace();
            }
            finally
                {
                    try
                        {
                            fi.close();
                            in.close();
                            fo.close();
                            out.close();
                        } catch (IOException e)
                            {
                                e.printStackTrace();
                            }
                }
    }
}

  

时间: 2024-08-19 19:51:19

Java一个简单的文件工具集的相关文章

基于Java的一个简单的文件上传下载功能

最近在公司给客户端做接口,有一个图片上传和文件下载的功能,本来想用Struts来做文件上传下载,但是看了下公司好像没有这个配置,然后看了下同事的代码,才发现原来Apache也可以简单的实现文件上传下载. 首先引入commons-io-2.2.jar FileUtils为我们提供了很多对文件的操作的方法,比如上传整个文件夹的文件.上传单个文件等 然后请看代码下载: public static void uploadFile(String targetDirectory,String targetF

java中IO写文件工具类

下面是一些根据常用java类进行组装的对文件进行操作的类,平时,我更喜欢使用Jodd.io中提供的一些对文件的操作类,里面的方法写的简单易懂. 其中jodd中提供的JavaUtil类中提供的方法足够我们使用,里面的方法写的非常简练,例如append,read等方法,封装更好,更符合面向对象, 这里面我写的一些方法可多都是模仿jodd,从里面进行抽取出来的. /** * 获取路径文件夹下的所有文件 * @param path * @return */ public static File[] ge

jfinal初接触,一个简单的文件上传例子

写了个上传的小例子. 从jfinal官网下载jfinal-1.8_demo_for_jsp.zip 然后下载jfinal-1.8-lib.zip 按要求删掉该删除的,引入一些包,之后的项目结构: DemoConfig.java中配置路由,只留下了根路径: /** * 配置路由 */ public void configRoute(Routes me) { me.add("/", CommonController.class); //me.add("/blog", B

自己打造了一个简单的站长工具

自己打造了一个简单的站长工具 站长工具:www.fanguzai.net/

Java开发的一个简单截屏工具

//源代码 import java.awt.*;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transferable;import java.awt.datatransfer.UnsupportedFlavorException;import java.awt.event.*;import javax.swing.*;import java.io.*;import javax.imageio.*;imp

Java一个简单的死锁例子

内容:一个简单的死锁例子,大概的思路:两个线程A和B,两把锁X和Y,现在A先拿到锁X,然后sleep()一段时间,我们知道sleep()是不会释放锁资源的.然后如果这段时间线程B拿到锁Y,也sleep()一段时间的话,那么等到两个线程都醒过来的话,那么将互相等待对方释放锁资源而僵持下去,陷入死锁.flag的作用就是让A和B获得不同的锁. public class TestDeadLock { public void run() { MyThread mt = new MyThread(); ne

【Java】Swing+IO流实现一个简单的文件加密程序(较完整版)

留着参考 beans package com.my.bean; import java.io.Serializable; public class EncryptedFile implements Serializable { private String filePath; private String keyFullName; public EncryptedFile() { } public String getFilePath() { return filePath; } public

JAVA 创建一个简单的文件

                Date date = new Date(); DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss"); int sjt = (int) (Math.random()*9000+1000);//随机4位数字 String newXmlName = "file"+formatter.format(date)+sjt+".xml"; String pa

【Java】Swing+IO流实现一个简单的文件加密程序

EncrytService package com.my.service; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class EncryptService { // 默认密匙路径 private static String DEFAULT_KEY_URL = ".//KEY"; // 临时文件路径 private static String