我在我的一个项目中使用了Java.net。我写了一个从客户端获取inputStream的应用服务器。但有时我的(缓冲的)InputStream无法获得客户端发送到我的服务器的所有OutputStream。我怎么能写一个等待或者类似的东西,让我的InputStream获得客户端的所有OutputStream呢?
(我的InputStream不是字符串)
private Socket clientSocket;
private ServerSocket server;
private BufferedOutputStream outputS;
private BufferedInputStream inputS;
private InputStream inBS;
private OutputStream outBS;
server = new ServerSocket(30501, 100);
clientSocket = server.accept();
public void getStreamFromClient() {
try {
outBS = clientSocket.getOutputStream();
outputS = new BufferedOutputStream( outBS);
outputS.flush();
inBS = clientSocket.getInputStream();
inputS = new BufferedInputStream( inBS );
} catch (Exception e) {
e.printStackTrace();
}
}
谢谢。
发布于 2013-11-07 23:29:15
你可以这样读你的BufferedInputStream。它将读取数据,直到它到达由-1表示的流的末尾。
inputS = new BufferedInputStream(inBS);
byte[] buffer = new byte[1024]; //If you handle larger data use a bigger buffer size
int read;
while((read = inputS.read(buffer)) != -1) {
System.out.println(read);
// Your code to handle the data
}
发布于 2018-05-25 22:12:08
int c;
String raw = "";
do {
c = inputstream.read();
raw+=(char)c;
} while(inputstream.available()>0);
InputStream.available()仅在读取一个字节后显示可用字节,因此执行..而
https://stackoverflow.com/questions/19839172
复制相似问题