0
InputStreamReaderの基本InputStreamにアクセスしようとしていますが、データがあるにもかかわらずブロックするだけです。InputStreamReaderを使用してInputStreamを使用した場合、InputStreamReaderをInputStreamに追加すると、基本となるInputStreamを使用しなくなるか、ブロックされます。 Java InputStreamが使用されている場合のみブロックされます。InputStreamReader
InputStream in = socket.getInputStream();
OutputStream theOutput = socket.getOutputStream();
BufferedReader br = new BufferedReader(
new InputStreamReader(in, StandardCharsets.US_ASCII));
String line = br.readLine();
System.out.println(line);
if(line.equals(Operation_Map_Upload)){
String MapName = br.readLine();
System.out.println(MapName);
String MapMaker = br.readLine();
System.out.println(MapMaker);
String MapData = br.readLine();
System.out.println(MapData);
int ThumbnailSize = Integer.parseInt(br.readLine());
System.out.println(ThumbnailSize);
byte[] Thumbnail = new byte[ThumbnailSize];
in.read(Thumbnail, 0, ThumbnailSize); // <---block here
int MapID = SaveMap(MapName, MapMaker, MapData, Thumbnail);
theOutput.write(("Success;" + MapID).getBytes(StandardCharsets.US_ASCII));
theOutput.flush();
}
は、私はそれがOK読み込みにInputStreamReader使用して1本の以上のラインを読む場合は、代わりに私はInputStreamを使用して1つのバイトを読み込むしようとした場合、それはブロックされます。
InputStreamReaderを使用する代わりに、私は何を提案しますか? – neutralh
私はこれを使用すると思いますhttp://stackoverflow.com/a/25341618/6562678 – neutralh