请高手帮我详细的解释一下,最好帮我注释一下
import java.io.*;
public class FileOperator {
public static void main(String[] args) {
try {
String search = "csdn";
File file = new File("d:\\directory");
File[] list = file.listFiles();
for (File f:list) {
BufferedReader reader = new BufferedReader(new FileReader(f));
String str = reader.readLine();
while (str != null) {
if (str.indexOf(search)>=0) {
reader.close();
f.renameTo(new File("d:\\toDirectory\\"+f.getName()));
System.out.println(f+"被发现含有"+search+",被移动...");
break;
}
str = reader.readLine();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.*;
public class FileOperator {
public static void main(String[] args) {
try {
String search = "csdn";
File file = new File("d:\\directory");
File[] list = file.listFiles();
for (File f:list) {
BufferedReader reader = new BufferedReader(new FileReader(f));
String str = reader.readLine();
while (str != null) {
if (str.indexOf(search)>=0) {
reader.close();
f.renameTo(new File("d:\\toDirectory\\"+f.getName()));
System.out.println(f+"被发现含有"+search+",被移动...");
break;
}
str = reader.readLine();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
try {
String search = "csdn"; //定义字符查询变量
File file = new File("d:\\directory"); //获取文件夹路径
File[] list = file.listFiles(); //获取文件列表
for (File f:list) { //循环获取文件列表中的文件
BufferedReader reader = new BufferedReader(new FileReader(f)); //定义文件输入流用来读取文件
String str = reader.readLine(); //读取文件一行字符串
while (str != null) { //如果读入的不为空
if (str.indexOf(search)> =0) { //如果该行字符串能匹配"csdn";
reader.close(); //关闭文件输入流
f.renameTo(new File("d:\\toDirectory\\"+f.getName())); //重命名文件
System.out.println(f+"被发现含有"+search+",被移动...");
break; //退出循环
}
str = reader.readLine(); //继续读取文件
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
import java.io.*;
public class FileOperator {
public static void main(String[] args) {
try {
String search = "csdn"; //定义要查询的字符串为csdn
File file = new File("d:\\directory"); //构造File类的对象 这里是一个目录。
File[] list = file.listFiles(); //得到上面定义的那个目录里的所有文件的数组 通过listFiles方法就可以
for (File f:list) { //for each循环 循环list数组里的每个元素
BufferedReader reader = new BufferedReader(new FileReader(f)); //能每个文件来构造输入流。
String str = reader.readLine(); //从流里读入一行字符串
while (str != null) { //如果读取到的字符串不为空 就进入循环
if (str.indexOf(search)> =0) { //检测str里 是否包含csdn 如果包含
reader.close(); //把流关掉
f.renameTo(new File("d:\\toDirectory\\"+f.getName())); //把这个文件剪切到另一个toDirectory目录里
System.out.println(f+"被发现含有"+search+",被移动...");
break; ///因为已经确定这个文件里包含csdn。所以不用再对这个文件进行循环读取 这里退出循环。
}
str = reader.readLine(); //如果上面的if结果为false 也就是读取到的字符串里不包含csdn这个字符串 就接着读取下一行
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}