いつもお世話になります。
下図のように3行追加するとBufferedReader readerに読み込むことができなくなくなります。
disconnect()にしてもうまくいかないです。
何が問題あるのでしょう?
java
//①クライント側 アンドロイドアプリ @Override protected Result doInBackground(Void... voids) { Result result = new Result(); byte[] data; result.bitmap = null; result.text=null; InputStream inputStream = null; StringBuilder builder = new StringBuilder(); try { URL url = new URL("http://192.168.3.5:8080/book123/chapter14/search"); HttpURLConnection con = (HttpURLConnection)url.openConnection(); //↓↓↓↓↓↓↓↓↓ここ3行追加すると BufferedReader readerに読み込めない con.connect(); inputStream = con.getInputStream(); result.bitmap = BitmapFactory.decodeStream(inputStream); //↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑ //↓↓↓↓↓↓読み込めれない BufferedReader reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")); String line; while ((line = reader.readLine()) != null){ builder.append(line); } result.text = builder.toString(); }catch (IOException exception){ } return result; } @Override protected void onPostExecute(Result result) { imageview.setImageBitmap(result.bitmap); textView.setText(result.text); } }
java
//②サーバー側 public class Hello extends HttpServlet{ @Override public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { try { response.setContentType("application/octet-stream ;charset=UTF-8"); response.setHeader("Content-Disposition" ,"attachment"); OutputStream out = response.getOutputStream();//画像側のストリーム<===エラー:getOutputStream()はこのレスポンスに対して既に呼び出されています //////テキスト////////start///////////////////////////////// PrintWriter out2=response.getWriter();//テキスト側のストリーム out2.println("こんにちは777777"); //////テキスト////////end///////////////////////////////// //////画像側////////start///////////////////////////////// FileInputStream input =new FileInputStream("/Applications/Eclipse_4.7.2.app/Contents/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/book777/WEB-INF/classes/chapter3/1.jpg"); int i = input.read(); while(i !=-1) { char c = (char)i; out.write(c); //ここでバイナリーデータを流している i = input.read(); } input.close(); out.close(); //////画像側////////end///////////////////////////////// }catch(Exception e) { System.out.println("意味不明のエラーです"); System.out.println(e); }catch (Throwable e) { System.out.println("byte[] data = IOUtils.toByteArray(input);でエラーです"); } //out.close(); } }
まだ回答がついていません
会員登録して回答してみよう