求代码!! java如何读取文件夹中所有txt文档(包含子文件夹中的txt文档)
java如何读取文件夹中所有txt文档(包含子文件夹中的txt文档)对文件进行读取并写入到输出文件路径下对应的的txt文档中。求代码!!!!!...
java如何读取文件夹中所有txt文档(包含子文件夹中的txt文档) 对文件进行读取并写入到输出文件路径下对应的的txt文档中。求代码!!!!!
展开
2个回答
展开全部
/**新建一个类把下面代码放进去,注意要设置basePath(你要读取的文件夹),读取和写入的方法也都写好了.你可以根据自己的需求掉用就行了**/
static String basePath="/home/csvDir";
/**
* 查找文件夹下所有符合csv的文件
*
* @param dir 要查找的文件夹对象
* */
public static void findFile(File dir) throws IOException{
File[] dirFiles = dir.listFiles();
for(File temp : dirFiles){
if(!temp.isFile()){
findFile(temp);
}
//查找指定的文件
if(temp.isFile() && temp.getAbsolutePath().endsWith(".txt") ){
System.out.println(temp.isFile() + " " + temp.getAbsolutePath());
readFileContent(temp);
}
}
}
/**
* @param file 要读取的文件对象
* @return 返回文件的内容
* */
public static String readFileContent(File file) throws IOException{
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
StringBuffer sb = new StringBuffer();
while(br.ready()){
sb.append(br.readLine());
}
System.out.println(sb.toString());
return sb.toString();
}
/**
* @param file 要写入的文件对象
* @param content 要写入的文件内容
* */
public static void writeFileContent(File file,String content) throws IOException{
FileWriter fw = new FileWriter(file);
fw.write(content);
fw.flush();
fw.close();
}
public static void main(String[] args) {
try {
findFile(new File(basePath));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
static String basePath="/home/csvDir";
/**
* 查找文件夹下所有符合csv的文件
*
* @param dir 要查找的文件夹对象
* */
public static void findFile(File dir) throws IOException{
File[] dirFiles = dir.listFiles();
for(File temp : dirFiles){
if(!temp.isFile()){
findFile(temp);
}
//查找指定的文件
if(temp.isFile() && temp.getAbsolutePath().endsWith(".txt") ){
System.out.println(temp.isFile() + " " + temp.getAbsolutePath());
readFileContent(temp);
}
}
}
/**
* @param file 要读取的文件对象
* @return 返回文件的内容
* */
public static String readFileContent(File file) throws IOException{
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
StringBuffer sb = new StringBuffer();
while(br.ready()){
sb.append(br.readLine());
}
System.out.println(sb.toString());
return sb.toString();
}
/**
* @param file 要写入的文件对象
* @param content 要写入的文件内容
* */
public static void writeFileContent(File file,String content) throws IOException{
FileWriter fw = new FileWriter(file);
fw.write(content);
fw.flush();
fw.close();
}
public static void main(String[] args) {
try {
findFile(new File(basePath));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
追问
非常感谢! 有一点点问题,读完txt内容之后我需要 do something ,然后将文本写入到对应的输出文件中,要在输出文件中建相同的txt和文件夹,如何操作?
追答
//如果文件夹不存在则新建,filepath=/home/root/test
if(!file.exists()){
file.mkdirs();
}
writeFileContent 这个方法会自动创建文件,并把内容写到文件内!
展开全部
/**
* 复制整个目录的内容
*
* @param srcDirName
* 待复制目录的目录名
* @param destDirName
* 目标目录名
* @param overlay
* 如果目标目录存在,是否覆盖
* @return 如果复制成功返回true,否则返回false
*/
public static boolean copyDirectory(String srcDirName, String destDirName,
boolean overlay) {
// 判断源目录是否存在
File srcDir = new File(srcDirName);
if (!srcDir.exists()) {
MESSAGE = "复制目录失败:源目录" + srcDirName + "不存在!";
JOptionPane.showMessageDialog(null, MESSAGE);
return false;
} else if (!srcDir.isDirectory()) {
MESSAGE = "复制目录失败:" + srcDirName + "不是目录!";
JOptionPane.showMessageDialog(null, MESSAGE);
return false;
}
// 如果目标目录名不是以文件分隔符结尾,则加上文件分隔符
if (!destDirName.endsWith(File.separator)) {
destDirName = destDirName + File.separator;
}
File destDir = new File(destDirName);
// 如果目标文件夹存在
if (destDir.exists()) {
// 如果允许覆盖则删除已存在的目标目录
if (overlay) {
new File(destDirName).delete();
} else {
MESSAGE = "复制目录失败:目的目录" + destDirName + "已存在!";
JOptionPane.showMessageDialog(null, MESSAGE);
return false;
}
} else {
// 创建目的目录
System.out.println("目的目录不存在,准备创建。。。");
if (!destDir.mkdirs()) {
System.out.println("复制目录失败:创建目的目录失败!");
return false;
}
}
boolean flag = true;
File[] files = srcDir.listFiles();
for (int i = 0; i < files.length; i++) {
// 复制文件
if (files[i].isFile()) {
flag = CopyFileUtil.copyFile(files[i].getAbsolutePath(),
destDirName + files[i].getName(), overlay);
if (!flag)
break;
} else if (files[i].isDirectory()) {
flag = CopyFileUtil.copyDirectory(files[i].getAbsolutePath(),
destDirName + files[i].getName(), overlay);
if (!flag)
break;
}
}
if (!flag) {
MESSAGE = "复制目录" + srcDirName + "至" + destDirName + "失败!";
JOptionPane.showMessageDialog(null, MESSAGE);
return false;
} else {
return true;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询