java文件倒序_用java实现文本文件内容的倒序

/*

* Main.java

*

* Created on 2007年11月6日, 上午10:00

*

* To change this template, choose Tools | Template Manager

* and open the template in the editor.

*/

package proj2;

import java.io.*;

import java.util.*;

/**

*

* @author user

*/

public class Main {

/** Creates a new instance of Main */    public Main() {    }        /**     * @param args the command line arguments     */    public static void main(String[] args) throws FileNotFoundException,IOException{        // TODO code application logic here        File f=new File("d://3.txt");        File f1=new File("d://4.txt");        BufferedReader b=new BufferedReader(new FileReader(f));        BufferedWriter b1=new BufferedWriter(new FileWriter(f1));        List temp=new ArrayList();        String data=null;        while((data=b.readLine())!=null)        {            temp.add(data);        }        for(int i=temp.size()-1;i>=0;i--)        {            String str=(String)temp.get(i);            b1.write(str);            b1.write('/n');        }        b.close();        b1.close();    }    }

Java中,实现根据文件名称的字典顺序以及文本内容重复次数进行倒序排序,可以分为几个步骤: 1. **读取文件内容**: 首先,你需要遍历指定目录下的所有文件,获取每个文件的名称和内容。可以使用`java.io.File`和`java.nio.file.Files`类来完成这一步。 ```java List<FileAndContent> files = new ArrayList<>(); File directory = new File("path/to/directory"); Files.walk(directory.toPath()) .filter(Files::isRegularFile) .forEach(file -> { String fileName = file.getFileName().toString(); String content = Files.readAllLines(file).join(""); files.add(new FileAndContent(fileName, content)); }); ``` 2. **计算重复次数**: 使用HashMap存储文件名及其对应的行数(即内容的重复次数),遍历添加到列表中的`FileAndContent`对象。 ```java Map<String, Integer> occurrences = files.stream() .collect(Collectors.groupingBy(FileAndContent::getName, Collectors.counting())); ``` 3. **创建排序规则**: 定义一个自定义的比较器,首先按照名称倒序,然后如果名称相同再根据内容的重复次数倒序。 ```java Comparator<FileAndContent> comparator = Comparator.comparing(FileAndContent::getName) .reversed() // 名称倒序 .thenComparing(FileAndContent::getContentOccurrences, Comparator.reverseOrder()); // 内容重复次数倒序 Collections.sort(files, comparator); ``` 这里假设`getContentOccurrences`是一个方法,用于从HashMap中查询特定文件名内容重复次数。 4. **输出结果**: 最后,你可以打印出排序后的文件信息。 注意:在实际应用中,由于文件可能会很大,处理大量数据时最好分批操作,并考虑性能优化,如使用`BufferedReader`逐行读取文件内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值