java - 如何按名称显示输出

标签 java

我必须从二进制文件中读取,然后我应该按名称顺序显示输出。

问题:

编写一个程序,从二进制文件 person.dat 中读取数据。 (请从网站下载二进制文件。)然后,按姓名升序显示姓名、年龄和性别(M – 男,F – 女)。

二进制文件的结构如下:

intVariable-TotalNumberofRecord

StringVariable-Name IntVariable-Age CharVariable-Gender

StringVariable-Name IntVariable-Age CharVariable-Gender

这是二进制文件(person.dat)中的内容

’ wa Mohamad Ali M Siti Nuraini F Tan Mei Kuan F Mutu Samy M Alvin Tan M

================================================

这是我编写的代码。问题是我不知道如何按字母顺序对输出进行排序。请帮我解决这个问题,谢谢。

    try {
        ObjectInputStream inputStream = new ObjectInputStream (new FileInputStream("C:/Users/user/Desktop/person.dat"));

        String input;
        int age, record;
        char gender;

        record = inputStream.readInt();
        System.out.println("Total number of records: "+record);

           try{ 
              while(true) {
                input = inputStream.readUTF(); 
                age = inputStream.readInt(); 
                gender = inputStream.readChar(); 

                System.out.println(input+" " +age +" " +gender);}

           }catch(EOFException e){}

        inputStream.close();

    } catch (FileNotFoundException e) {
    System.out.println("File was not found"); 
    } catch (IOException e) {
    System.out.println("Problem with file output.");
}

最佳答案

要对数据进行排序,必须先将数据放入集合(如ArrayList)中,排序,然后输出。

在将数据放入集合之前,您应该创建一个来将数据保存在一起。它应该是一个非常简单的类,只在构造函数中接受姓名、年龄和性别。

要对类的实例进行排序,请让类实现 Comparable界面。 .compareTo 方法只能调用正在比较的名称的相同方法。

我希望这足以理解您其余的讲义。

关于java - 如何按名称显示输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26891070/

相关文章:

java - Image View 和 onClickListener 问题

java - 将 Sysout 值路由到 JTextArea

java - 按元素类型拆分列表

java - 从用户输入中读取数学表达式

java - Tomcat 与 Azure 中的 MongoDB 通信时出现超时错误

java - build.xml javac 提示在编译期间缺少 javax.servlet.http 中的类

Java 虚拟机缺少 Aptana Studio

java - JPA findby 过滤子字符串列表

java - 我如何在这里使用多态性来改进我的代码?

java - 无状态 bean 的依赖注入(inject)(@Inject 和 @PersistenceContext)失败