爬虫爬下来一些分类的html文件,然后要把它们去除标签转生成新的txt文件,但是只会写处理一个文件夹下面的文件,它不会深入到文件夹里面的文件夹里的文件。
各位大神能请教一下怎么弄吗?
或者能百度hi 我或者 Q我535623384 ,赐教一下啦!
我给你个例子,你把其中的路径File file = new File("c:\\tmp\\5");改成你的路径就行了。
public class Test2
{
public static void main(String[] args)
{
File file = new File("c:\\tmp\\5");
Test2 t = new Test2();
t.method(file);
}
public void method(File f)
{
File[] FList = f.listFiles();
for (int i = 0; i < FList.length; i++)
{
if (FList[i].isDirectory()==true)
{
method(FList[i]);
}
else
{
System.out.println(FList[i].getAbsolutePath());
}
}
}
}追问
public class Test2
{
public static void main(String[] args)
{
File file = new File("c:\\tmp\\5");
Test2 t = new Test2();
t.method(file);
}
public void method(File f)
{
File[] FList = f.listFiles();
for (int i = 0; i < FList.length; i++)
{
if (FList[i].isDirectory()==true)
{
method(FList[i]);
}
else
{
System.out.println(FList[i].getAbsolutePath());
}
}
}
}追问
能在百度hi上讨论一下麽?hi你了……
追答我也hi你了。上面的例子程序是一个简单的递归程序。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2012-06-21
package p;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class 遍历文件 {
//上一个文件
String lastFile = "" ;
//没能得到的文件
List<String> errFile = new ArrayList<String>() ;
/**
* 递归遍历
*/
public void getFiles(File dir){
File[] fz = dir.listFiles() ;
if(fz == null){
errFile.add(lastFile) ; //这个文件不能读取(多少系统的什么文件夹)
return ;
}
for (int i = 0; i < fz.length; i++) {
if(fz[i].isDirectory()){//目录
lastFile = fz[i].getAbsolutePath() ; //保存这个是 可能无法对此文件操作
getFiles(fz[i]) ;
}else {
//这里是对 fz[i] 这个文件的处理
System.out.println(fz[i]);
}
}
}
//不能读取的文件
public void out(){
for (int i = 0; i < errFile.size(); i++) {
System.out.println(errFile.get(i));
}
}
public static void main(String[] args) {
遍历文件 aa = new 遍历文件();
aa.getFiles(new File("M:"));
System.out.println("_________________________");
aa.out() ;
}
}
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class 遍历文件 {
//上一个文件
String lastFile = "" ;
//没能得到的文件
List<String> errFile = new ArrayList<String>() ;
/**
* 递归遍历
*/
public void getFiles(File dir){
File[] fz = dir.listFiles() ;
if(fz == null){
errFile.add(lastFile) ; //这个文件不能读取(多少系统的什么文件夹)
return ;
}
for (int i = 0; i < fz.length; i++) {
if(fz[i].isDirectory()){//目录
lastFile = fz[i].getAbsolutePath() ; //保存这个是 可能无法对此文件操作
getFiles(fz[i]) ;
}else {
//这里是对 fz[i] 这个文件的处理
System.out.println(fz[i]);
}
}
}
//不能读取的文件
public void out(){
for (int i = 0; i < errFile.size(); i++) {
System.out.println(errFile.get(i));
}
}
public static void main(String[] args) {
遍历文件 aa = new 遍历文件();
aa.getFiles(new File("M:"));
System.out.println("_________________________");
aa.out() ;
}
}
第2个回答 2012-06-21
你可是使用递归读取啊