最近有人反应某云盘,无法上传视频,我也倍受困扰,后来发现MD5 验证不根据文件名识别,故编写一个JAVA 统一追加扩展名类。
package test.file;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import com.util.AbstractObject;
/**
* 1 指定一个文件,统一追加扩展名(如 .txt)
* 2 指定一个文件夹,把里面的文件统一追加扩展名(如 .txt)
* @author 古色古香
* @date 2014-7-7
*/
public class RenameFileName extends AbstractObject{
public static String file_path = "E:/TDDOWNLOAD"; //文件或文件夹路径
public static String extension_name = ".txt"; //扩展名
//统一输出文件路径
public static String output_FilePath = "C:/Documents and Settings/Administrator/桌面/2.txt";
public static void main(String[] args) {
List filePathList = new ArrayList();//文件名列表
//获取文件名列表
RenameFileName.getFileNameList(file_path, filePathList);
showList(filePathList);
//统一追加扩展名:true 追加,false 删除
List newFileList = RenameFileName.renameFileName(filePathList, extension_name, true);
//输出追加后文件名列表
RenameFileName.appendLineFile(output_FilePath, newFileList, false);
System.out.println("=======RenameFileName 执行完毕=========");
}
/**
* 递归取出一个文件的文件名,或者一个文件夹下的文件名列表
* @param filePath
* @param filePathNameList 文件路径+文件名
* @author 古色古香
* @date 2014-7-7
*/
public static void getFileNameList(String filePath, List filePathNameList) {
File f = new File(filePath);
//当前路径是文件,取得文件名,直接返回
if(!f.isDirectory()){
//组装文件名
filePathNameList.add(f.getPath());
return ;
}
// 当前路径是目录,取得File数组
File[] files = f.listFiles();
// 当前目录为空,直接返回
if(files ==null){
System.out.println("目录为空=============="+f.getPath());
return ;
}else{
System.out.println("目录非空=============="+f.getPath()+",子文件长度+"+files.length);
}
// 循环取出子文件名列表
for (int i = 0; i < files.length; i++) {
File sonFiles = files[i];//子文件对象
if(sonFiles.isHidden()){
System.out.println("隐藏文件===="+sonFiles.getPath() + "\\" +sonFiles.getName());
}else{
//System.out.println("显示文件===="+sonFiles.getPath() + "\\" +sonFiles.getName());
}
// 递归出子目录
if (sonFiles.isDirectory()) {
System.out.println("子目录路径:" + sonFiles.getPath()+",子目录是:" + sonFiles.getName());
// 递归调用,取该目录包含的子文件名
getFileNameList(sonFiles.getPath(), filePathNameList);
}
// 递归出子文件
else {
System.out.println("子文件名:" + sonFiles.getName());
//组装文件名
filePathNameList.add(sonFiles.getPath());
}
}
}
/**
* 统一追加扩展名
* @param filePathList 文件路径+文件名
* @param extensionName 追加扩展名
* @param append 通过这个对象来判断是否向文本文件中追加内容
*/
public static List renameFileName(List filePathList,String extensionName, boolean append){
List newFileList = new ArrayList();// 新文件路径列表
if(filePathList == null || filePathList.size()<=0){
System.out.println("统一追加扩展名, 源文件路径列表为空:" + filePathList);
return newFileList;
}
//循环追加扩展名
for(int i=0; i<filePathList.size(); i++){
String resFilePath = (String)filePathList.get(i);//源文件名
//文件名为空,则循环下一个
if(resFilePath == null || "".equals(resFilePath)){
continue;
}
String newFilePath = resFilePath; //新文件名, 默认不变
if(append){
if(!resFilePath.endsWith(extensionName)){
newFilePath = resFilePath + extensionName;//追加
}
}else{
if(resFilePath.endsWith(extensionName)){
newFilePath = resFilePath.substring(0, resFilePath.length()-extensionName.length());//去除
}
}
newFileList.add(newFilePath);
File resFile = new File(resFilePath);
File newFile = new File(newFilePath);
boolean appednFlg = resFile.renameTo(newFile);
if(appednFlg){
System.out.println("统一追加扩展名成功:新文件名" + newFilePath);
}else{
System.out.println("统一追加扩展名失败:源文件名" + resFilePath);
}
}
return newFileList;
}
/**
* 向文本文件中,逐行重新写入或追加内容
* @param filePathName 得到文本文件的路径+文件名
* @param fileContent 需要写入的内容
* @param append 通过这个对象来判断是否向文本文件中追加内容
*/
public static void appendLineFile(String filePathName, List contentList, boolean append) {
try {
File file = new File(filePathName);
if (file.exists() == false){ // 如果文本文件不存在则创建它
file.createNewFile();
file = new File(filePathName); // 重新实例化
}
//FileWriter是直接跟输出介质发生关系的 ,性能极差
FileWriter fileWriter = new FileWriter(file, append);
//BufferedWriter是输出的时候有一个缓冲区
BufferedWriter bufwriter = new BufferedWriter(fileWriter);
//PrintWriter提供println()方法可以写不同平台的换行符
PrintWriter printWriter = new PrintWriter(fileWriter);
for(int i=0;i<contentList.size();i++){
Object fileContent = contentList.get(i);
if(fileContent != null){
// 以下三种方式都可以写
// fileWriter.write(fileContent.toString() + "\n");
// bufwriter.newLine();
// bufwriter.write(fileContent.toString());
printWriter.println();
printWriter.write(fileContent.toString());
}else{
System.out.println("文件内容=========contentList["+i+"]"+fileContent);
}
}
printWriter.flush();
printWriter.close();
// bufwriter.flush();
// bufwriter.close();
fileWriter.flush();
fileWriter.close();
} catch (Exception d) {
System.out.println(d.getMessage());
}
}
}
相关推荐
此工具类只用于Java后端在操作Properties文件的时候写的工具类,方便properties文件的存取操作
java 追加文件内容 java 追加文件内容 java 追加文件内容
Java 文件追加操作··················································
主要介绍了基于Java向zip压缩包追加文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
一个简单的提供覆盖式和追加式写文件功能的JAVA类,可调用其覆盖式方法创建新文件或重置老文件内容,调用其追加式方法在已有文件中增加新内容。
Java往文件结尾追加数据(用Eclipse打开。)主要代码:RandomAccessFile vRandomAccessFile = new RandomAccessFile(sFile,"rw");vRandomAccessFile.writeBytes(sInput);
NULL 博文链接:https://blacklab.iteye.com/blog/562541
maven 项目。直接运行项目里的TestAddExcel类 即可看效果。
java_IO操作_(读写、追加、删除、移动、复制、修改)
java,使用序列化,多次将类的实例写入txt文件,以追加方式而非覆盖方式,同样反序列化从txt文件中读取出来,并显示在控制台上。
Java项目下用的一个实现了类似Android下Log类。Android向Java学习的同学习惯的Log.i()用法 追加了一些扩展类 可满足日志分析需求
参照 http://blog.csdn.net/psp0001060/article/details/49388459 主要介绍javascript动态追加或减少下拉框,以及对应Java端接受新追加的下拉框参数。
学生信息小程序(实现追加,读取的方法,java语言编写).docx学生信息小程序(实现追加,读取的方法,java语言编写).docx学生信息小程序(实现追加,读取的方法,java语言编写).docx学生信息小程序(实现追加,读取的方法,java...
java_IO操作_(读写、追加、删除、移动、复制、修改)
内容概要:1,A方法追加文件:使用RandomAccessFile 2,B方法追加文件:使用FileWriter
主要介绍了java 如何往已经存在的excel表格里面追加数据的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
java中多种方式读文件,追加文件内容,对文件的各种操作 java中多种方式读文件,追加文件内容,对文件的各种操作 doc 格式
在本篇文章里我们给大家整理了关于java如何追加写入txt文件的方法和代码,需要的朋友们可以参考下。
目录 1.项目计划 2 1.1背景分析 2 1.2任务分配 2 2.系统需求分析与功能设计 3 2.1系统需求分析 3 2.2功能结构 3 3.系统设计与实现 5 3.1、软件选择分析 5 3.2主要功能模块 5 3.3数据库设计 7 ...7.参考文献 26
opi java操作excel表格 无脑复制 无脑粘贴 excel追加 创建,真的非常方便