七星屠苏 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 r语言神经网络自变量重要性分析
  • ¥15 基于双目测规则物体尺寸
  • ¥15 wegame打不开英雄联盟
  • ¥15 公司的电脑,win10系统自带远程协助,访问家里个人电脑,提示出现内部错误,各种常规的设置都已经尝试,感觉公司对此功能进行了限制(我们是集团公司)
  • ¥15 救!ENVI5.6深度学习初始化模型报错怎么办?
  • ¥30 eclipse开启服务后,网页无法打开
  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢