while循环未执行后的下一行

时间:2014-03-31 02:12:41

标签: java filestream printstream

我正在尝试将内容写入文件,但是一旦while循环打印出所有行,它就会被卡住并且不会进入下一行。 while循环后的行没有被执行。我的第一个猜测是,fstream可能仍在等待另一行,但是while循环确实检查是否没有更多的数据然后它应该出来。

请帮帮我吧! 感谢。

//代码

File file;

                DataInputStream inputData = new DataInputStream(newPeerConnection.getInputStream());

                file = new File(
                        "F:\\Workspace\\PeerToPeer\\src\\ncsu\\csc\\socketClasses\\out\\out.txt");

                @SuppressWarnings("resource")
                PrintWriter fstream = new PrintWriter(new FileWriter(
                        file, true));

                if (!file.exists()) {
                    file.createNewFile();
                }

                                 System.out.println("Writing to file: ");
                while ((strval = inputData.readUTF()) != null) {
                    System.out.println(strval);
                    fstream.println(strval);
                    //fstream.flush();
                    //fstream.close();
                }
                //These lines are not executed
                System.out.println("Do you want to download another file (Y/N)?");
                wantToContinue = scannerObj.next();
                 out.writeUTF(wantToContinue);
                 out.flush();}

1 个答案:

答案 0 :(得分:1)

我猜您的while循环被inputData.readUTF()阻止。

您应该确保newPeerConnection的输入流被另一个端口关闭,否则inputData将等待下一个输入和inputData.readUTF()块。