在阅读的过程中有任何问题,欢迎一起交流
QQ:1494713801
1、在指定目录下创建文件夹及文件,并写入初始内容
File file = new File("filePath");
File pf = file.getParentFile();
if(!pf.exists()){
pf.mkdirs();//创建文件夹
}
if(!file.exists()){
file.createNewFile();//创建新文件
}
FileWriter fw = new FileWriter(file);
PrintWriter pw = new PrintWriter(fw);
pw.append("this is a new file");//写入初始文本内容
pw.flush();
pw.close();
2、修改文件中指定行的内容
File file = new File("file路径");
BufferedReader reader = null;
try {
reader = new BufferedReader(new FileReader(file));
String tempString = "";
String bufferstr="";
while ((tempString = reader.readLine()) != null) {
try {
tempString.getBytes("utf-8");
if(tempString.startsWith("dburl=")){
bufferstr+="替换为新内容"+"\n";
}else{
bufferstr+=tempString+"\n";
}
} catch (UnsupportedEncodingException e1) {
e1.printStackTrace();
}
}
reader.close();
BufferedWriter writer=new BufferedWriter(new FileWriter(file));
writer.write(bufferstr);
writer.close();
} catch (Exception e) {
e.printStackTrace();
}finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e1) {
}
}
}
3、在当前目录下查找其下及所有子文件夹中的包含et.txt字符的文件路径
public static File[] searchFile(File folder, final String keyWord) {// 递归查找包含关键字的文件
File[] subFolders = folder.listFiles(new FileFilter() {// 运用内部匿名类获得文件
public boolean accept(File pathname) {// 实现FileFilter类的accept方法
if (pathname.isDirectory() || (pathname.isFile() && pathname.getName().toLowerCase()
.equals(keyWord.toLowerCase())))// 目录或文件包含关键字
return true;
return false;
}
});
List result = new ArrayList();// 声明一个集合
for (int i = 0; i < subFolders.length; i++) {// 循环显示文件夹或文件
if (subFolders[i].isFile()) {// 如果是文件则将文件添加到结果列表中
result.add(subFolders[i]);
} else {// 如果是文件夹,则递归调用本方法,然后把所有的文件加到结果列表中
File[] foldResult = searchFile(subFolders[i], keyWord);
for (int j = 0; j < foldResult.length; j++) {// 循环显示文件
result.add(foldResult[j]);// 文件保存到集合中
}
}
}
File files[] = new File[result.size()];// 声明文件数组,长度为集合的长度
result.toArray(files);// 集合数组化
return files;
}
参考链接:http://dict.xsoftlab.net/dict/java-find