如何使用java程序批量修改特定文件夹下的文件名
public class FileNameTest{
/**
*修改文件名称
*@param file
*/
public static void changeFileName(File file){
File[] files= file.listFiles();//遍历文件夹下的所有文件
//因为你这文件夹下全是文件,所以这里没用递归
for(int i= 0; i< files.length; i++){
File f= files[i];//获取文件
String fileName= f.getName();//获取文件名称
fileName= fileName.replace("韩顺平.循序渐进学.java.从入门到精通.","");//你这里文件名有规律,所以我这里直接用replace方法来替换原来的文件名
f.renameTo(new File("D:\\Program Files\\视频\\"+fileName));//这里就是修改后的新文件名
}
}
/**
* main函数
*@param args
*/
public static void main(String[] args){
File file= new File("D:\\Program Files\\视频");
changeFileName(file);
}
}
java文件操作问题
你好,我按照你的要求把程序写出来,可以直接运行。
说下大体思路:建立临时文件。读取原文件一行内容,写到临时文件中;如果遇到要替换内容的那行,就把新内容写到那行。最后把原文件删除,临时文件改名成原文件名。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class test2{
public static void main(String[] args){
File file= new File("d:\\1.txt");//你要把某行换掉内容的文件
File temp= new File("d:\\temp.txt");//临时文件
try{
BufferedReader in= new BufferedReader(new InputStreamReader(new FileInputStream(file)));
BufferedWriter out= new BufferedWriter(new OutputStreamWriter(new FileOutputStream(temp)));
String strNew="这是这行要换成的新的内容";
String str;
int rowToOverWrite= 5;//比如你要换第五行
int rowCurrent= 0;
while(null!=(str= in.readLine())){
if(rowCurrent!= rowToOverWrite){
out.write(str);
} else{
out.write(strNew);
}
out.write("\r\n");
rowCurrent++;
}
in.close();
out.close();
file.delete();
temp.renameTo(file);
} catch(FileNotFoundException e){
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
}
}
}
----------------------------------------------------------------------------------------
java里确时有个可以同时进行读写文件操作的类,是RandomAccessFile,我也想过这种方法,试试下面代码你可满意?
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
public class test2{
public static void main(String[] args){
File file= new File("d:\\1.txt");//你要把某行换掉内容的文件
try{
RandomAccessFile raf= new RandomAccessFile(file,"rw");
int rowToOverWrite= 6;//首行算第0行,比如你要换第6行
int rowCurrent= 0;
String strNew="这是这行要换成的新的内容";
String str;
while(null!=(str= raf.readLine())){
if(rowCurrent== rowToOverWrite){
raf.writeUTF(strNew);
break;
}
rowCurrent++;
}
raf.close();
} catch(FileNotFoundException e){
e.printStackTrace();
} catch(IOException e){
e.printStackTrace();
}
}
}
如何解决java.util.zip.ZipException
zos.putNextEntry(new ZipEntry(System.currentTimeMillis()+""));//安置条目
似乎 Zip似乎只能迭代式访问,没有直接删除某个条目的能力。
所以只能重新创建一个临时的 zip文件啦,不符合条件的原样地写出到临时文件,而符合条件的经过变换之后写入到临时文件,最后把原来的文件关闭并删除再把临时文件改名成原来的 zip文件。