1、编写一个程序,指定一个文件夹,能自动计算出其总容量

import java.io.File;
import java.util.ArrayList; public class FileAction {
ArrayList<File> fileList;
File root; public FileAction(String pathName) {
root = new File(pathName);
fileList = new ArrayList<>();
} public void searchFiles() {
File[] files = root.listFiles();
int length = files.length;
for (int i = 0; i < length; i++) {
if (files[i].isDirectory()) {
root = files[i];
searchFiles();
} else {
fileList.add(files[i]);
}
}
} public void countFiles() {
long totalSize = 0;
System.out.println("文件数:" + fileList.size());
for (int i = 0; i < fileList.size(); i++) {
totalSize += fileList.get(i).length();
}
System.out.println("文件总大小:" + totalSize);
} public static void main(String[] args) {
String pathName = "E:\\音乐";
FileAction counter = new FileAction(pathName);
counter.searchFiles();
counter.countFiles();
} }

2、编写一个文件加解密程序,通过命令行完成加解密工作

package file_attribute_analysis;

import java.io.File;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream; public class FileAction {
private static final int numOfEncAndDec=0x99;//加密解密密钥
private static int dataOfFile=0;//文件字节内容 public static void main(String[] args) {
File srcFile=new File("G:\\encryption_text.txt");//初始化文件
File encFile=new File("G:\\encryption_text01.txt"); //加密文件
File decFile=new File("G:\\encryption_text02.txt"); //解密文件 try {
EncFile(srcFile,encFile); //加密操作
DecFile(encFile,decFile);
}catch(Exception e) {
e.printStackTrace();
}
}
private static void EncFile(File srcFile,File encFile)throws Exception{
if(!srcFile.exists()) {
System.out.println("source file not exixt");
}
if(!encFile.exists()) {
System.out.println("encrypt file created");
encFile.createNewFile();//若无加密文件,新建一个加密文件
}
InputStream fis=new FileInputStream(srcFile);
OutputStream fos=new FileOutputStream(encFile); while((dataOfFile=fis.read())>-1) {//当读到文件内容时
fos.write(dataOfFile^numOfEncAndDec);//将读出的内容加密后写入
}
fis.close();
fos.flush();
fos.close();
}
private static void DecFile(File encFile,File decFile)throws Exception{
if(!encFile.exists()) {
System.out.println("encrypt file not exixt");
}
if(!decFile.exists()) {
System.out.println("decrypt file created");
decFile.createNewFile();
}
InputStream fis=new FileInputStream(encFile);
OutputStream fos=new FileOutputStream(decFile); while((dataOfFile=fis.read())>-1) {
fos.write(dataOfFile^numOfEncAndDec);
}
fis.close();
fos.flush();
fos.close();
}
}

加密前:

加密后;

解密后:

3、编写一个文件分割工具,能把一个大文件分割成多个小的文件。并且能再次把它们合并起来得到完整的文件

1.分割文件:

 1 import java.io.File;
2 import java.io.FileInputStream;
3 import java.io.FileNotFoundException;
4 import java.io.FileOutputStream;
5 import java.io.IOException;
6
7
8 public class CutFile {
9 public static void main(String[] args) {
10 //调用cutFile()函数 传人参数分别为 (原大文件,切割后存放的小文件的路径,切割规定的内存大小)
11 cutFile("D:\\file\\file.txt", "D:\\file2",1024 * 1024 * 20);
12 }
13
14 private static void cutFile(String src, String endsrc, int num) {
15 FileInputStream fis = null;
16 File file = null;
17 try {
18 fis = new FileInputStream(src);
19 file = new File(src);
20 //创建规定大小的byte数组
21 byte[] b = new byte[num];
22 int len = 0;
23 //name为以后的小文件命名做准备
24 int name = 1;
25 //遍历将大文件读入byte数组中,当byte数组读满后写入对应的小文件中
26 while ((len = fis.read(b)) != -1) {
27 //分别找到原大文件的文件名和文件类型,为下面的小文件命名做准备
28 String name2 = file.getName();
29 int lastIndexOf = name2.lastIndexOf(".");
30 String substring = name2.substring(0, lastIndexOf);
31 String substring2 = name2.substring(lastIndexOf, name2.length());
32 FileOutputStream fos = new FileOutputStream(endsrc + "\\\\"+ substring + "-" + name + substring2);
33 //将byte数组写入对应的小文件中
34 fos.write(b, 0, len);
35 //结束资源
36 fos.close();
37 name++;
38 }
39 } catch (FileNotFoundException e) {
40 e.printStackTrace();
41 } catch (IOException e) {
42 e.printStackTrace();
43 } finally {
44 try {
45 if (fis != null) {
46 //结束资源
47 fis.close();
48 }
49 } catch (IOException e) {
50 e.printStackTrace();
51 }
52 }
53 }
54 }

实现结果截图:

未操作前:

分割后:

文件的集合:

 1 package class6;
2
3 import java.io.File;
4 import java.io.FileInputStream;
5 import java.io.FileNotFoundException;
6 import java.io.FileOutputStream;
7 import java.io.IOException;
8
9 public class GotherFile {
10 public static void main(String[] args){
11 //调用togetherFile()函数合并小文件到大文件 参数列表分别为 (小文件所在的父文件夹路径,所合成的大文件的路径)
12 togetherFile("D:\\file2","D:\\file3\\file.txt");
13 }
14 private static void togetherFile(String src, String endsrc){
15 FileOutputStream fos = null;
16 File file1 = null;
17 File file2 = null;
18 try {
19 file1 = new File(endsrc);
20 file2 = new File(src);
21 //获得大文件的存储路径的FileOutputStream对象
22 fos = new FileOutputStream(endsrc);
23 //循环遍历对应文件夹中的所有小文件
24 for(File file : file2.listFiles()){
25
26 FileInputStream fis = new FileInputStream(file.getAbsolutePath());
27
28 byte[] b = new byte[1024*1024];
29 int len = 0;
30 //将小文件读入byte数组,之后再将byte数组写入大文件中
31 while((len = fis.read(b)) != -1){
32 fos.write(b, 0, len);
33 }
34 //结束资源
35 fis.close();
36 }
37 } catch (FileNotFoundException e) {
38 e.printStackTrace();
39 } catch (IOException e) {
40 e.printStackTrace();
41 }finally{
42 try {
43 if(fos != null){
44 //结束资源
45 fos.close();
46 }
47 } catch (IOException e) {
48 e.printStackTrace();
49 }
50 }
51 }
52 }

操作前:

集合操作后:

关于文件属性(Java)的更多相关文章

  1. Java核心技术梳理-IO

    一.引言 IO(输入/输出),输入是指允许程序读取外部数据(包括来自磁盘.光盘等存储设备的数据).用户输入数据.输出是指允许程序记录运行状态,将程序数据输出到磁盘.光盘等存储设备中. IO的主要内容包 ...

  2. Java的Path、Paths和Files

    前言 因为这几天被java.nio的这几个接口和工具类卡到了,就顺便地查了一波文档以及使用方法,这篇其实更像是API的复制粘贴,只不过我在注释里多写了一些output和注意事项,看不惯API的可以选择 ...

  3. (私人收藏)[开发必备]最全Java离线快速查找手册(可查询可学习,带实例)

    (私人收藏)[开发必备]最全Java离线快速查找手册(可查询可学习,带实例) https://pan.baidu.com/s/1L54VuFwCdKVnQGVc8vD1TQnwmj java手册 Ja ...

  4. 第8章 File I/O,File类操作文件的属性

    1.文件 1.1.什么是文件? 答:文件可认为是相关记录或放在一起的数据的集合 1.2.文件- -般存储在哪里? 答: 磁盘,硬盘,文件夹 1.3.JAVA程序如何访向文件属性? JAVA API:i ...

  5. Spark案例分析

    一.需求:计算网页访问量前三名 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} /* ...

  6. Java 7如何操纵文件属性

    Java 7如何操纵文件属性 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs 准备写点基础性的文章,Java 7已经出来很长一段时间了,但是很多Java程 ...

  7. properties文件属性值@Value注解为 java entity属性赋值

    一.使用@Value为 java entity类中的非static属性赋值 举个栗子,一目了然 1.1 properties文件 1.2 servlet.xml 文件增加的配置: 1.2.1 serv ...

  8. properties文件属性值通过xml文件为 java entity属性赋值

    一.通过xml配置文件进行赋值: 举个栗子,一目了然: 1.1 properties文件: 1.2 xml配置文件,将properties属性与java entity属性相关联:(这是一个新建的xml ...

  9. 怎么修改与设置.java文件属性?

    1.首先  打开  >>  Myeclipse或Eclipse.(我用的是Myeclipse) 2.打开  >>  Window  >>  Preferences  ...

  10. Java File类读取文件属性

     package myjavademo;import java.io.*; publicclass MyJavaDemo {     public static void main(String[]  ...

随机推荐

  1. [ZJOI2008]骑士 题解

    题面 这道题稍微想一想就会联想到树形DP的入门题:没有上司的舞会: 但是再想一想会发现这根本就不是一颗树,因为它比树多了一条边: 这时候我们引入一个新的概念:基环树: 顾名思义(??),基环树就是在一 ...

  2. 链接Caffe,程序报错应用程序无法正常启动(0xc000007b)

    目录 背景 Debug 解决办法 原因(猜想) 总结 重点是介绍了一种排查这个问题的方法. 背景 Windows 下, Caffe 单独编译成库并且安装在路径 Caffe_DIR, 动态链接库 Caf ...

  3. 解决sudo用户找不到环境变量的问题

    出于安全方面的考虑,使用sudo执行命令将在一个最小化的环境中执行,环境变量都重置成默认状态.所以PATH这个变量不包括用户自定义设置的内容 在sudo用户的主目录里的.bashrc中添加如下内容即可 ...

  4. jse中将数据反转

    public class test { public static void main(String args[]){ String arr[]={"1","2" ...

  5. 微信小程序环境搭建(本地,测试,生产)

    1.本地 官网文档链接:https://cloud.tencent.com/document/product/619/11442#.E6.9C.AC.E5.9C.B0.E5.A6.82.E4.BD.9 ...

  6. ——HTTP状态码

    200 请求成功,请求所希望的响应头或数据体将随此返回 302 请求的资源现在临时从不同的URI响应请求,由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求. 304 如果客户端发送了一 ...

  7. html-DOM了解

    什么是 HTML DOM? HTML DOM 是: HTML 的标准对象模型 HTML 的标准编程接口 W3C 标准 HTML DOM 定义了所有 HTML 元素的对象和属性,以及访问它们的方法. 换 ...

  8. C++ STL(一)string的用法

    # 1.string的用法- string在<iostream>的头中就有,但是还是得用<string>的头 ##### 构造函数- str(const char* ch) 直 ...

  9. Zookeeper客户端使用(使用原生zookeeper)

    Zookeeper客户端使用 一.使用原生zookeeper 在pom.xml中加入依赖 <dependency> <groupId>org.apache.zookeeper& ...

  10. etl-p

    java excel 导入数据库 上传文件包  解压导入excel包 导入mysql