用字符流实现每个文件夹中创建包含所有文件信息的readme.txt
package com.readme; import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner; /**
* @author lisj
* 用字符流实现每个文件夹中创建包含所有文件信息的readme.txt
*
*/
public class FileNews { static int i=0; //定义文件个数全局变量
public static void main(String args[]) throws IOException{ find(); //调用查找文件函数
System.out.println("共有"+i+"个文件! "); } /**
* find()函数实现目录参数的传递
* 在此方法中调用写文件信息函数
*/
private static void find() throws IOException { Scanner scanner=new Scanner(System.in);
System.out.println("请输入目录(输入end退出程序):");
String findpath=scanner.next(); //输入路径 File file=new File(findpath); if(!file.exists()||!file.isDirectory()){ //判断该路径是否存在,是否是目录 if(findpath.equals("end")) //结束判断条件
{
System.out.println("程序结束,感谢使用!");
System.exit(-1);
}
else //输入错误,重新输入
{
System.out.println("输入的路径不存在,请重新输入!(输入end退出程序)");
find(); //递归调用
} } lookup(file); //调用判断文件,写文件信息函数 } /**
* lookup()函数实现目标目录下文件和文件夹的判别
* 在此方法中实现写入文件信息到readme.txt
*/
public static void lookup(File file) throws IOException{ String read=file.getAbsolutePath();
File readfileexist=new File(read+"/"+"readme.txt");
if(readfileexist.exists()){ //如果已经存在readme.txt,则删除
readfileexist.delete();
} File[] names=file.listFiles(); //输入的路径下的文件的目录 BufferedWriter out=null; //定义字符输出流 //查找到的文件属性数组的初始化
if(names!=null){ for(File name:names){ //遍历输入的路径下的文件和文件夹 if(name.isFile()) //判断该路径下是文件
{ //定义文件时间属性
Date date=new Date(name.lastModified());
SimpleDateFormat simpledate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String laststr = name.getParent();
File readfile=new File(laststr+"/"+"readme.txt"); //定义字符流写入的路径和文件名 out = new BufferedWriter(new FileWriter(readfile,true)); //定义字符流可追加写入信息 out.write("名字:"+name.getName()+" "); //写入文件信息
out.newLine();
out.write("大小:"+name.length()+" 字节");
out.newLine();
out.write("时间:"+simpledate.format(date)+" ");
out.newLine();
out.newLine();
out.flush(); //刷新缓冲以及关闭流
out.close();
i++; //统计文件个数 }
else
{
lookup(name);//递归调用函数
}
} } } }
用字符流实现每个文件夹中创建包含所有文件信息的readme.txt的更多相关文章
- 在文件夹中 的指定类型文件中 查找字符串(CodeBlocks+GCC编译,控制台程序,仅能在Windows上运行)
说明: 程序使用 io.h 中的 _findfirst 和 _findnext 函数遍历文件夹,故而程序只能在 Windows 下使用. 程序遍历当前文件夹,对其中的文件夹执行递归遍历.同时检查遍历到 ...
- 使用ftp读取文件夹中的多个文件,并删除
public class FTPUtils { private static final Logger LOG = LoggerFactory.getLogger(FTPUtils.class); / ...
- java基础 File 递归删除文件夹中所有文件文件夹 目录(包含子目录)下的.java文件复制到e:/abc文件夹中, 并统计java文件的个数
File 递归删除文件夹中所有文件文件夹 package com.swift.kuozhan; import java.io.File; import java.util.Scanner; /*键盘录 ...
- 【源码】rm zip 删除文件夹中大量的小文件 百万 扫描文件时间
rm 删除文件夹中大量的小文件 百万 迟迟未删除 在扫描文件? rm删除命令源码分析 - ty_laurel的博客 - CSDN博客 https://blog.csdn.net/ty_laurel/ ...
- 在存放源程序的文件夹中建立一个子文件夹 myPackage。例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage)。在 myPackage 包中创建一个YMD类,该类具有计算今年的年份、可以输出一个带有年月日的字符串的功能。设计程序SY31.java,给定某人姓名和出生日期,计算该人年龄,并输出该人姓名、年龄、出生日期。程序使用YM
题目补充: 在存放源程序的文件夹中建立一个子文件夹 myPackage.例如,在“D:\java”文件夹之中创建一个与包同名的子文件夹 myPackage(D:\java\myPackage).在 m ...
- 利其器:无法在 ".vscode" 文件夹()内创建 "launch.json" 文件。
无法在 ".vscode" 文件夹()内创建 "launch.json" 文件. https://www.cnblogs.com/lidabo/p/588899 ...
- C# 1.将整个文件夹复制到目标文件夹中 2.将指定文件复制到指定目标文件夹中
].Items.Clear(); string filePath = Application.StartupPath; string sourcePath = Path.Combine(filePat ...
- shell脚本实例一,移动文件夹中大于2000B的文件到另一个文件夹
shell脚本能帮我们简化linux下的一些工作,现在有个需求,把TMPA文件夹下大于2000B的文件都移动到TMPB下 #! /bin/bash function movefiles() { ` d ...
- Android Studio:layout-sw600dp文件夹中创建activity_main.xml
1.右键res文件夹,新建Android resource directory文件夹 2.在resource type中选择layout 3.将Directory name命名为layout-sw6 ...
随机推荐
- 如何生成git的公钥和私钥
转载地址:http://blog.csdn.net/wqjsir/article/details/17386087 一. Git windows 客服端(MsysGit)下载 下载地址:http:// ...
- c语言学习笔记三
第三章,函数 字符串函数 //strcmp int my_strcmp(char *str1,char *str2) { while(*str1 = = *str2) /*不可用while(* ...
- Android Studio上NDK/JNI开发环境问题
基础环境: 操作系统 —— Windows 7 Android Studio —— 1.5.1(android-studio-bundle-141.2456560-windows.exe) NDK — ...
- 马氏距离(Mahalanobis distance)
马氏距离(Mahalanobis distance)是由印度统计学家马哈拉诺比斯(P. C. Mahalanobis)提出的,表示数据的协方差距离.它是一种有效的计算两个未知样本集的相似度的方法.与欧 ...
- linux高级编程补充知识
F: 计算机系统结构: ------------------------------- 应用程序 ----------------- | 库函数 -------------------------- ...
- HTML5开发笔记:图片上传预览
我们知道通过<input type="file">可以用来进行一个图片或者文件的上传,然而浏览器自带的一个缩略图预览的功能其实是相当不美观的,很多时候我们希望可以在上传 ...
- The innocence is brilliant.
[11.20~12.20] 2016年的最后一个月在听Avril的歌,感觉她发音状态好好(对此建议去听<Wish You Were Here>!!!) 到此12月份的活都干完了吧~还剩最后 ...
- ubuntu14.04+nvidia driver+cuda8+cudnn5+tensorflow0.12
文章在简书里面编辑的,复制过来貌似不太好看,还是到简书的页面看吧: http://www.jianshu.com/p/c89b97d052b7 1.安装环境简介: 硬件: cpu:i7 6700k g ...
- js动画
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- The World's Only Advanced Operating System
The World's Only Advanced Operating System