在以下实施频率代码中出现错误

 pyg2358_586 发布于 2023-02-07 01:57

Hello EveryOne我想根据频率对文件的文本进行排序.我在运行时出现错误,内存错误.请尽快给出回复.

import java.io.*; 

import java.util.*;

import java.util.Collections;   

class SortedInAlphaOrder

 {

public static void main(String a[]) throws IOException{

          Scanner input = new Scanner(System.in);

          System.out.println("Enter the filename with path : " );

          //String filename = input.next();

          File f = new File("Ashish.txt");

          BufferedReader br = new BufferedReader(new FileReader(f));

          StringBuffer buffer = new StringBuffer();

          String str =br.readLine();

          while((str!= null)){

          buffer.append(str);

          buffer.append(" ");

          }

          ArrayList list = new ArrayList();


       StringTokenizer st = new StringTokenizer(buffer.toString().toLowerCase());

          while(st.hasMoreTokens()){

                String s = st.nextToken();

                list.add(s);

                }

            HashSet set = new HashSet(list);

            List arrayList = new ArrayList(set);

            Collections.sort(arrayList);

            for(Object ob : arrayList){

                    System.out.println(ob.toString());

                }

            }           }

获取错误OutofMemoryHeap Error.Help me out.

1 个回答
  • 我想我看到了你的问题.您分配strbr.readLine()一个,但您的while循环仅在停止时停止str == null.我假设第一个br.readLine()返回非null String,你继续检查它是否null在你的while循环中.结果,你的wile循环永远不会停止,你最终会得到一个OutOfMemory错误.相反,您应该像这样更改您的代码(未经测试).

    // ...other code
    String str;
    while((str = br.readLine()) != null){
          buffer.append(str);
          buffer.append(" ");
    }
    // ...other code
    

    2023-02-07 02:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有