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();
}
}
}
}

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

  1. 使用 jquery 的 上传文件插件 uploadify 3.1 配合 java 来做一个简单的文件上次功能。并且在界面上有radio 的选择内容也要上传

    使用 jquery 的 上传文件插件 uploadify 3.1 配合 java 来做一个简单的文件上次功能.并且在界面上有radio 的选择内容也要上传 uploadify 插件的 下载和文档地址  ...

  2. Java实现一个简单的文件上传案例

    Java实现一个简单的文件上传案例 实现流程: 1.客户端从硬盘读取文件数据到程序中 2.客户端输出流,写出文件到服务端 3.服务端输出流,读取文件数据到服务端中 4.输出流,写出文件数据到服务器硬盘 ...

  3. 基于node实现一个简单的脚手架工具(node控制台交互项目)

    实现控制台输入输出 实现文件读写操作 全原生实现一个简单的脚手架工具 实现vue-cli2源码 一.实现控制台输入输出 关于控制台的输入输出依然是基于node进程管理对象process,在proces ...

  4. 用Qt写软件系列三:一个简单的系统工具(上)

    导言 继上篇<用Qt写软件系列二:QIECookieViewer>之后,有一段时间没有更新博客了.这次要写的是一个简单的系统工具,需求来自一个内部项目.功能其实很简单,就是查看当前当前系统 ...

  5. Python的网络编程[5] -> BOOTP + TFTP + FTP -> 实现一个简单的文件传输流程

    BOOTP-TFTP-FTP 目录 文件传输流程 服务器建立过程 客户端建立过程 1 文件传输流程 / File Transfer Flow 利用BOOTP,TFTP,FTP三种传输协议,建立起客户端 ...

  6. Java压缩和解压缩文件工具

    Java压缩和解压缩文件工具 学习了: https://www.oschina.net/code/snippet_1021818_48130 http://blog.csdn.net/gaowen_h ...

  7. java最简单复制文件方法,不依赖任何框架

    java最简单复制文件方法   把java2.txt内容复制到java.txt中 import java.io.File; import java.io.IOException; import jav ...

  8. Java一个简单的贪吃蛇

    Java一个简单的贪吃蛇 虽然GUI已经要淘汰了,但是手动写写界面还是有助于理解语法的,像构造函数 ,函数调用,内部类,继承,接口.有助于半初学者强化理解. 直接上代码 游戏主体类: package ...

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

    //源代码 import java.awt.*;import java.awt.datatransfer.DataFlavor;import java.awt.datatransfer.Transfe ...

随机推荐

  1. Java学习笔记之---入门

    Java学习笔记之---入门 一. 为什么要在众多的编程语言中选择Java? java是一种纯面向对象的编程语言 java学习起来比较简单,适合初学者使用 java可以跨平台,即在Windows操作系 ...

  2. 解析Unicode转义序列带来的问题

    Unicode转义序列的解析是发生在代码编译之前,编译器机械的将\u样式的代码文本转义,即使是注释以及非正常代码,对此步骤来说也没有区别 导致下面的情况: public class Test { pu ...

  3. centos7 + Nginx+ HTTPS + uwsgi + python3.6 + Docker + Django1.11 + mysql 5.6 + virtualenv 环境搭建

    环境搭建: 系统: ​ centos7.2 x64 开发环境: ​ python3.6 ​ Django 1.11 虚拟环境: [Docker](https://www.runoob.com/dock ...

  4. idea中的beautiful插件-自动生成对象set方法

    1. 描述 从前端获取VO对象后,好多时候又要生成数据库对象,需要进行赋值,一个个写很浪费时间,介绍一款idea中的beautiful插件,代码开发过程中自动生成对象的set方法,很好用. 2 .插件 ...

  5. 分布式事务(4)---RocketMQ实现分布式事务项目

    RocketMQ实现分布式事务 有关RocketMQ实现分布式事务前面写了一篇博客 1.RocketMQ实现分布式事务原理 下面就这个项目做个整体简单介绍,并在文字最下方附上项目Github地址. 一 ...

  6. Appium+python自动化(二十)- 猴哥失散多年的混血弟弟还是妹妹- Monkey(猴子)日志(超详解)

    简介 日志是非常重要的,用于记录系统.软件操作事件的记录文件或文件集合,可分为事件日志和消息日志.具有处理历史数据.诊断问题的追踪以及理解系统.软件的活动等重要作用,在开发或者测试软系统过程中出现了问 ...

  7. 基于Vue的通用框架Nuxt.js

    问题:最近有些朋友问我写官网,用Vue框架实现好不好? 相信很多使用Vue的小伙伴们一样疑惑这个问题,其实从这个问题就可以知道你对Vue这个框架是否真的熟悉了.其实单单使用Vue这个框架来做官网的,其 ...

  8. Hadoop FAQ

    测试环境: Hadoop 2.6.0-cdh5.7.1 apache-kylin-2.0.0-bin kylin运行check-env.sh时,报如下警告: WARN util.NativeCodeL ...

  9. Lake Counting-C++

    Description Due to recent rains, water has pooled in various places in Farmer John's field, which is ...

  10. linux 安装命令 nginx 部署

    [TOC] # 安装anocanda wget https://repo.anaconda.com/archive/Anaconda3-2019.03-Linux-x86_64.sh安装:bash A ...