首页 > 解决方案 > 如何使用套接字和 Java 中的 Object Stream 从文本文件中获取特定值?

问题描述

我有带有 ComboBox 的 GUI,它具有三个类别Engineer, Manager, Administrative Personnel. 当我选择其中之一时,它应该显示有关例如Engineer我正在使用带有详细信息的文本文件的信息。I want to retrieve specific values from the text file eg when Engineeris selected the request should go to the server through socket and then server response back with selected specific information using Object Stream. 我对这段代码的问题是它只通过使用Object Streamin 和 out 给我文本文件的第一行。我希望服务器查找这三个工程师姓名并返回三个以显示的响应JTextArea。`

try {
    out = new ObjectOutputStream (socket.getOutputStream ());
    C3TextArea.setText ("");
    out.writeObject (C3TextArea.getText ());

    ObjectInputStream in = new ObjectInputStream (socket.getInputStream ());
    String r = (String) in.readObject ();
    System.out.println ("Server Recived" + in .readObject ());
    C3TextArea.setText ((String) r);

} catch (IOException ex) {
    Logger.getLogger (ViewFrame.class.getName ()).log (Level.SEVERE, null, ex);
} catch (ClassNotFoundException ex) { }

public class Server {

    public static void main (String[] args) throws ClassNotFoundException {
        try {
            ServerSocket Listener = new ServerSocket (7000);

            while (true) {

                Socket client = Listener.accept ();

                ObjectInputStream in = new ObjectInputStream (client.getInputStream ());
                String r = (String) in.readObject ();
                System.out.println ("Ser Recived" + r);

                ObjectOutputStream out = new ObjectOutputStream (client.getOutputStream ());
                File file = new File ("employee.txt");
                Scanner scan = new Scanner (file);
                while (scan.hasNext ()) {
                    out.writeObject (scan.nextLine ());
                }
            }

        } catch (IOException ex) {
            Logger.getLogger (Server.class.getName ()).log (Level.SEVERE, null, ex);
        }
    }
}

我的文本文件:

Engineer, John Eng1,12345, 1000.00,10
Manager, Jim Man1,23451, 1500.00, 500.00
Manager, Jim Man2,34512, 2000.00, 100.00
AdministrativePersonnel, Helen Adm1,45123, 20.0, 40.0
Engineer, Maria Eng2,51234, 1200.00,12
Manager, Jim Man3,23456, 1200.00,600.00
AdministrativePersonnel, John Doe1,34562, 15.0, 30.0
Engineer, Mary Eng3,45612, 2000.00,20
AdministrativePersonnel, Nick Doe2,56234, 22.0, 45.0
Manager, Ann Man4,62345, 2300.00, 400.00

`

标签: javastream

解决方案


推荐阅读