Android---网络交互之客户端请求服务端资源后续
2010-12-01 16:21
260 查看
昨天尝试通过网络连接将服务器资源下载到客服端,然而也发现一些问题,比如能够成功的将mp3、txt、png下载下来,但是将压缩文件(rar)下下来之后却不能解压出来。当初以为是对于android平台所不支持的文件格式就会出现这样的情况,但是同样的gif格式的图片,android同样无法打开,但是下下来之后却能够成功的打开。暂时也未能找到相关的资料说明,还望那个大牛能解释解释。
在查找相关android网络连接资料的时候,发现有很多示例:有的是以文件方式存储,有的是直接将文件内容读取出来显示。对于没熟悉的,确实感觉很困难,容易混淆都不知道看哪一个比较好。当我理清基本的概念后,我也尝试着将一些文本文件直接解析显示(txt、xml)
上一篇讲到了从网络数据流到具体文件的纽带(FileOutputStream),而我们将文件与String对比,就会使用到另外一个对象BufferedReader(从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取).
代码
这里有一个要注意的问题就是就是编码问题,这也就是为什么在android中汉字出现乱码问题的原因,我是这样理解的:因为window和linux(或java虚拟机)所使用的汉字编码是不同的,当你从windows下用gbk编码的汉字到别的平台(另外一种默认的汉字编码方式),就会出现乱码,所以 从编码到解析必须统一。
在查找相关android网络连接资料的时候,发现有很多示例:有的是以文件方式存储,有的是直接将文件内容读取出来显示。对于没熟悉的,确实感觉很困难,容易混淆都不知道看哪一个比较好。当我理清基本的概念后,我也尝试着将一些文本文件直接解析显示(txt、xml)
上一篇讲到了从网络数据流到具体文件的纽带(FileOutputStream),而我们将文件与String对比,就会使用到另外一个对象BufferedReader(从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取).
代码
InputStream is = connect.getInputStream(); InputStreamReader isr = new InputStreamReader(is, " gbk " ); BufferedReader br = new BufferedReader(isr); //可变字符串 StringBuffer sb = new StringBuffer(); //存储一行数据(br.readLine每次读写一行 ) String readLine = null ; while ((readLine = br.readLine()) != null ){ Log.v( " tag " , " ------------------ " + sb.toString()); sb.append(readLine).append( " /n " ); } br.close(); is.close(); connect.disconnect(); showText = new String(sb.toString().getBytes( " gbk " ), " gbk " );
这里有一个要注意的问题就是就是编码问题,这也就是为什么在android中汉字出现乱码问题的原因,我是这样理解的:因为window和linux(或java虚拟机)所使用的汉字编码是不同的,当你从windows下用gbk编码的汉字到别的平台(另外一种默认的汉字编码方式),就会出现乱码,所以 从编码到解析必须统一。
相关文章推荐
- Android---网络交互之客户端请求服务端资源后续
- Android---网络交互之客户端请求服务端资源
- Android---网络交互之客户端请求服务端资源
- Android-网络交互之客户端请求服务端资源-stoneson的专栏-  -  棒槌网@Android开发论坛 - Powered by phpwind
- Android客户端采用Http 协议Post方式请求与服务端进行数据交互
- Android客户端请求服务端资源(HttpURLConnection和输入流实现)
- Android客户端采用Http 协议Post方式请求与服务端进行数据交互
- Android客户端采用Http 协议Post方式请求与服务端进行数据交互
- Android客户端采用Http 协议Post方式请求与服务端进行数据交互(转)
- 黑马程序员_Java基础_网络编程_客户端服务端数据传输,交互,客户端请求服务原理,自定义浏览器,URL统一资源定位符
- Android客户端采用Http 协议Post方式请求与服务端进行数据交互
- 用.Net打造一个移动客户端(Android/IOS)的服务端框架NHM(二)——“请求”“交互”与传输数据(服务器端)
- Android Bluetooth蓝牙客户端发起对服务端连接建立请求过程(高版本Android兼容)
- android客户端与服务端交互的三种方式
- iOS:根据日志去定位网络请求发生的错误是由于服务端造成的,还是客户端造成的?
- android菜鸟学习笔记25----与服务器端交互(二)解析服务端返回的json数据及使用一个开源组件请求服务端数据
- 实践Android客户端与服务端之间使用JSON交互数据。
- Android作为客户端,PC作为服务端:实现网络通信
- Android客户端与PHP服务端交互(一)---框架概述
- Android Bluetooth蓝牙客户端发起对服务端连接建立请求过程(高版本Android兼容)