为setcontenttype("text/html"),BitmapFactory.decodeByteArray返回值为null

从javaweb获取一张图片的数据流,方法如下:

5 ^% P3 m2 d) ^; T- ]

8 g) x! g- @) Q" ?% x* K- e% R        response.setContentType("text/html");9 ~* @2 w, k& e. K) J3 b, Y

+ \  L/ K' k9 N4 _

response.setCharacterEncoding("UTF-8");

u7 M; t/ v2 \* s  r6 g

% j$ C% [6 f1 U0 B        PrintWriter writer = response.getWriter();

' V8 N" j- ^" M   3 _& o- i6 n& X: r

InputStream inputStream = this.getServletContext().getResourceAsStream("/WEB-INF/pics/4.jpg");7 m2 l! \" ], B9 A

0 L8 ]; w! N- a        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));1 B) u% v  J" s, _% X

1 _  N: y2 x, `' `% U        String str;* s/ o% u) _, M2 v1 @) r8 D

L0 }5 \' c( w        while((str=bufferedReader.readLine())!=null){

+ Z5 N& d5 L$ ?7 E; L% G. }   . L3 L  N' ]& `; h- o* {4 Y

writer.write(str);

3 O# c( X# f/ s4 f8 V5 o0 {   g2 l6 U: Y3 S; D+ T

System.out.println("str="+str);

( M0 q  A4 r& r   . N& `9 q1 f: v. {" p3 c+ T

}0 h9 b! c3 n, T

0 U! O! C7 q/ S' \# C, Y) V4 \% \

writer.flush();( u8 {/ F& `* J* p3 s' P( ^

6 o. Y1 B6 x0 K& `

writer.close();

- J2 n8 n! [" Z0 }1 j! S3 h   8 l0 P4 k( E4 G! J. W$ W6 y8 ~

然后android客户端获取此数据流,

9 m' O+ a. D* f: W! f   * K; A& {+ n) }. b

public static ByteArrayOutputStream readParse(String urlPath) throws Exception {

0 M9 O$ K( F; i/ V

) N! r( w3 n5 w+ N$ a7 T        ByteArrayOutputStream outStream = new ByteArrayOutputStream();

Z' h" ]0 G4 m- }8 \- W   1 J6 o! S( W$ }9 j  f- z0 W: H8 p' k

byte[] data = new byte[1024];

/ B9 v: _9 I& N1 \   4 K* m. z- f/ O" i

int len = 0;

, j/ Q$ p2 U! Y- p$ e: _4 g3 j

/ Z8 @) X* S8 R5 d# e0 s        URL url = new URL(urlPath);

, _2 v$ @( ^( ~  U1 G+ j9 v8 N   . _2 P" c8 H) O4 }( G2 |

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

, N) y2 L# V& g: S" c- ]   ( W9 R7 k3 G9 y, L3 p

Log.i("xin", "conn="+conn);% o/ u& q- `+ q1 A/ c5 c  s- D

. {+ P1 _. C$ c# I        InputStream inStream = conn.getInputStream();

- [/ G: j8 J- u; T   ! p9 ^4 N! j" C$ \9 L' k$ s

' S6 B0 ]5 }! c/ Q5 J

Q' q, l7 [: b' d* }        while ((len = inStream.read(data)) != -1) {

5 R8 N9 H' U" \! g6 {) p- p! c  w

7 V5 s: D- Q$ w" c            outStream.write(data, 0, len);

2 Y0 K0 D. O/ T3 q   * @( t" \6 X6 h  E

, T5 ~; Q: F& h0 z

" o' q# j8 M! [# P+ C        }# M3 y# m* [5 Z8 i- Y: b( u5 t

: }8 A* v) h+ c! O

inStream.close();

% M" w# T/ H2 w- Q0 H$ C   ' ~7 d9 m: H8 r& c7 Y( i( m

return outStream;

3 G/ J1 ?' O& B' ?6 T5 F6 L   ' [7 }0 _+ g" R2 I# r+ ~8 \

0 R5 `$ v) j8 g6 s% X2 r

- g, }- h6 {- [. Y9 L& X    }4 W% F/ m7 h: X+ p! i; a

% [. `) g4 h' S. H然后调用上面的方法:4 c+ O  H) L$ M3 C9 a

1 X) s5 Z! P8 r  n! v, M+ W

ByteArrayOutputStream readParse = readParse(urlPath);

: Y) d, `, ?3 [   6 W* h- t1 N. h4 d- x* F/ I6 U

byte[] byteArray = readParse.toByteArray();1 o+ Q' J: V1 s( ]$ l

4 T( u& l5 k  K7 C* I4 A            Bitmap bitmap = BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length);

+ ]7 v' D3 t+ T! O2 d" a* o   ' ~4 U2 `. b6 z/ Q

却获得bitmap 为null,经验证从服务器端获取到了数据,byteArray 不为空。

1 v8 ]. u3 Q: p   " R/ R( y: [& t7 [

求大神指点一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值