七星屠苏 2021-11-26 21:46 采纳率: 100%
浏览 197
已结题

java读取文件并按体积大小排序输出

score.txt
品名:电视,length:102cm,width:90cm,height:56cm。
品名:轿车,length:4502cm,width:178cm,height:156cm。
品名:冰箱,length:50cm,width:90cm,height:220cm。
品名:空调,length:160cm,width:40cm,height:50cm。
品名:桌子,length:125cm,width:80cm,height:70cm。
要求按行读入货物明细,并在该行的后面加上该货物的体积,然后将所有货物
按体积排序,再依次将每行货物信息写入到一个名为scoreAnalysis.txt的文件中。
以下是我写的代码,没有完成排序的目标,有大佬教教吗

AnalysisResult.java


import java. io. *;
import java. util. *;
public class AnalysisResult {
     public static void main (String args[])  {
         File fRead = new File ("score.txt");
         File fWrite = new File ("scoreAnalysis.txt");
         try {   Writer out = new FileWriter(fWrite,true);
                   BufferedWriter bufferWrite =new BufferedWriter(out);
                   Reader in = new FileReader(fRead);
                   BufferedReader bufferRead = new BufferedReader(in);
                   String str =null;
                   while ((str = bufferRead.readLine())!=null)  {
                           double volume =Fenxi.getVolume(str);
                            str = str +"体积"+volume;
                            System.out.println(str);                         
                           bufferWrite.write(str);
                           bufferWrite.newLine();
                    }
                    bufferRead.close();
                    bufferWrite.close();
            }
            catch(IOException e) {
                     System.out.println(e.toString());
             }
        }
}
 

Fenxi.java

import java.util.*;
public class Fenxi {
      public static double getVolume(String s)  {
           Scanner scanner =new Scanner(s);
           scanner.useDelimiter("[^0123456789.]+");
           double volume = 1;
            while (scanner.hasNext ()) {
                  try {      double vol=scanner.nextDouble();
                                volume =volume*vol;
                   }
                   catch( InputMismatchException exp) {
                            String t = scanner.next();
                    }
             }
              return volume;
         }
}

  • 写回答

2条回答 默认 最新

  • 水晶心泉 2021-11-27 10:06
    关注

    在厕所看到了这道题,所以...
    只提供思路吧
    1.题主先看一下TreeMap的用法。
    2.读取scope.txt时,把当前项的体积作为key,把当前项的内容作为value存到TreeMap。
    3.按照(2)把scope.txt的内容全部读取到TreeMap里面
    4.遍历TreeMap输出到那个结果文件

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月30日
  • 已采纳回答 11月30日
  • 修改了问题 11月27日
  • 修改了问题 11月26日
  • 展开全部

悬赏问题

  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果