我正在尝试将内容写入文件,但是一旦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();}
答案 0 :(得分:1)
我猜您的while
循环被inputData.readUTF()
阻止。
您应该确保newPeerConnection
的输入流被另一个端口关闭,否则inputData
将等待下一个输入和inputData.readUTF()
块。