判断一个文件夹下的txt文件内部字符串 和另外一个txt每一行的字符串比较得到的内容

该博客讨论如何在不遵循标准格式的txt文件中,找出包含最多图片名的类,并将其与另一个txt文件的每行进行比较。主要关注字符串搜索和列表操作。
摘要由CSDN通过智能技术生成
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.PrintWriter;
public class Accuracy {

	//类似于此
	public static void main(String[] args) throws Exception {

            String path = "D:\\10stanford 100";
            File file1 = new File(path);
            File[] array = file1.listFiles();
            //读取txt的类的文件夹名称
			BufferedReader reader = new BufferedReader(new FileReader("D:\\stanford\\1111111cmn0302.txt"));
			String line = reader.readLine();

			while(line != null){
				     String[] list = null;
                     list = line.split(":");
                     float accuracy1= 0;
                     for(int i=0;i<array.length;i++){
	                     if(array[i].getName().contains(list[1])){
	                    	 //判断是不是文件名中有没有包含第一行列表中的第二个元素就是[类别名]
	                    	 int count=0;
	                    	 System.out.print(array[i].getPath());
	                    	 BufferedReader reader2 = new BufferedReader(new FileReader("D:\\stanford\\"+list[1]+".txt"));
	                    	 //读入相应的以类命名的txt
	                    	 String line2 = reader2.readLine();
	                    	 for(int j=3;j<list.length;j++)
	                    	 if(line2.contains(list[j])){
	                    		 //判断原来的图片集中的所有图片名字  在测试分类的list中有几个
	                    		 count++;
	                    	 }
	                    	 String[] list2 = null;
	                         list2 = line2.split(":");
	
可以使用Java的File类遍历文件夹中的所有TXT文件,然后使用前面提到的方法对每个TXT文件进行处理。遍历文件夹可以使用递归方式实现。 下面是一个示例代码: ```java import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class ReadFolderOfTXT { public static void main(String[] args) { File folder = new File("folderPath"); // 指定文件夹路径 processFolder(folder); } private static void processFolder(File folder) { for (File file : folder.listFiles()) { if (file.isDirectory()) { processFolder(file); // 如果是文件夹,则递归处理 } else { if (file.getName().endsWith(".txt")) { // 如果是TXT文件,则处理 processFile(file); } } } } private static void processFile(File file) { try (BufferedReader br = new BufferedReader(new FileReader(file))) { String line; String prevLine = ""; while ((line = br.readLine()) != null) { line = line.trim().replaceAll("\\s+", ""); // 去除前后空格和所有空格和换行符 if (line.equals("targetString")) { // 判断是否与指定字符串相等 System.out.println(prevLine + line); // 输出连续两行的内容 } prevLine = line; } } catch (IOException e) { System.err.format("IOException: %s%n", e); } } } ``` 在这个示例中,我们指定了一个文件夹路径,并在main()方法中调用processFolder()方法来遍历文件夹中的所有文件。在processFolder()方法中,我们使用listFiles()方法获取文件夹中的所有文件文件夹,并使用for循环遍历它们。如果是文件夹,则递归调用processFolder()方法。如果是TXT文件,则调用processFile()方法处理。 在processFile()方法中,我们使用BufferedReader类逐行读取TXT文件,并使用前面提到的方法对每行内容进行处理。然后,使用equals()方法判断line是否与指定字符串相等,如果相等,则输出prevLine和line的内容。最后,将line赋值给prevLine,以备下一次循环使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值