Java 我想使用bufferedreader读取字符串数组

Java 我想使用bufferedreader读取字符串数组,java,arrays,bufferedreader,printwriter,Java,Arrays,Bufferedreader,Printwriter,我有一个客户端类,它使用PrintWriter发送一个字符串数组,然后服务器类应该能够接收这些值,但我找不到从字符串数组读取的解决方案 客户端类: public Client(String[] data) throws IOException { connectToServer(); out.println(data); } public void connectToServer() throws IOException { String serverAddre

我有一个客户端类,它使用PrintWriter发送一个字符串数组,然后服务器类应该能够接收这些值,但我找不到从字符串数组读取的解决方案

客户端类:

    public Client(String[] data) throws IOException {
    connectToServer();
    out.println(data);
    }

public void connectToServer() throws IOException {
String serverAddress = "localhost";
Socket socket = new Socket(serverAddress,9898);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(),true);
}
服务器类: (这是服务器读取客户端发送的任何内容的方法)

您在这里遇到了一个问题:

public Client(String[] data) throws IOException {
    connectToServer();
    out.println(data);
}
这将通过套接字发送无意义数据,即字符串数组的
toString()
表示,如果客户端发送无意义数据,服务器将只读取相同的数据。而是使用for循环将数据作为单个字符串发送

public Client(String[] data) throws IOException {
    connectToServer();
    for (String line : data) {
        out.println(line + "\n");
    }
}

或者,我假设您可以使用ObjectOutputStream,然后只发送整个数组,但无论如何,都不要执行您最初所做的操作。

“……但我无法找到从字符串数组读取的解决方案”
——您需要自己编写解决方案。让我们看看您的客户端代码和服务器尝试。如果你展示它,如果你讨论你的代码的具体问题,那么我们应该能够很容易地帮助你。嗨,phoenixWright,你的问题太广泛了。你应该先拿一本书读一读。请包括编写字符串数组的代码、生成的文本以及尝试读取文本的代码。试着找出你阅读代码中的具体问题。还有。。。值得注意的是,在将从内存中读取数据的
读取器
周围包装额外级别的缓冲没有任何好处。@HovercraftFullOfEels很抱歉,我现在包含了我的代码谢谢您的更新。如果你对我的答案有任何疑问,请询问。我没有想到如何使用客户机类。谢谢@菲尼克斯·赖特:很高兴这有帮助,再次感谢你改进了你的问题。
public Client(String[] data) throws IOException {
    connectToServer();
    for (String line : data) {
        out.println(line + "\n");
    }
}