Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过PrintWriter从服务器向客户端发送整数时,不可能进行解析_Java_Server_Client - Fatal编程技术网

Java 通过PrintWriter从服务器向客户端发送整数时,不可能进行解析

Java 通过PrintWriter从服务器向客户端发送整数时,不可能进行解析,java,server,client,Java,Server,Client,我正在编写一个小的服务器客户端程序,它将一个正在写入文件的客户端的文本发送到具有相同文件名的其他客户端,并得到以下错误 但我只是发送一个整数,没有其他字符 代码如下: 服务器 String[] splitter = scanText.split("\n"); String length = splitter.length + ""; //sending scanText to clients for (PrintWriter pw2 : userMap.get(filename) ) {

我正在编写一个小的服务器客户端程序,它将一个正在写入文件的客户端的文本发送到具有相同文件名的其他客户端,并得到以下错误

但我只是发送一个整数,没有其他字符

代码如下:

服务器

String[] splitter = scanText.split("\n");
String length = splitter.length + "";

//sending scanText to clients
for (PrintWriter pw2 : userMap.get(filename) ) {
     if(!pw2.equals(pw))
     {
        pw2.println(length + "\n" + scanText); 
     }
}
客户

类“UpdateInBackground”是客户端类中的一个类

class UpdateInBackground extends Thread {

    @Override
    public void run() {
        int lines; //to know how much lines are send from the server
        String scanText;
        while (!this.isInterrupted()) {
            scanText = "";
            lines = Integer.parseInt(sc.nextLine()); //here I get the error
            while (lines-- > 0) {
                scanText += sc.nextLine() + "\n";
            }
            output.setText(scanText);
        }

    }
}

@芦笋,请在sc.nextLine()行中定义sc,考虑到这是来自类扫描程序的对象,我需要知道输入。这个问题必须能够用变量的定义和输入的内容自我解释

在类UpdateInBackground中, lines=Integer.parseInt(sc.nextLine());//此处nextLine()表示任何字符串,请参阅

NumberFormatException的原因:您正在将值转换为int,而不知道输入的内容


尝试使用异常处理,了解可能会出现的错误类型,以避免程序被击中。

谢谢您的回答!但为什么输出中明显无法显示的字符位于行数(1)的前面?我可以知道您的输入(sc.nextLine())或输入集吗,这样我可以帮助您解决问题。要检查添加的不需要的字符,只需在控制台上按如下方式打印:System.out.println(sc.nextLine().length),在将其解析为整数之前。