• 010_03HTML源码查看器


        主要用到了ByteArrayOutputStream类。该类无需指定输出流的路径,而是将数据直接输出到内存缓冲区。

    使用toByteArray方法获取内存缓冲区数据。

     1 package com.example.day10_03htmlsourceViewer;
     2 
     3 import java.io.ByteArrayOutputStream;
     4 import java.io.InputStream;
     5 import java.net.HttpURLConnection;
     6 import java.net.URL;
     7 import android.app.Activity;
     8 import android.os.Bundle;
     9 import android.os.Handler;
    10 import android.os.Message;
    11 import android.view.View;
    12 import android.widget.TextView;
    13 import android.widget.Toast;
    14 
    15 public class MainActivity extends Activity {
    16     @Override
    17     protected void onCreate(Bundle savedInstanceState) {
    18         super.onCreate(savedInstanceState);
    19         setContentView(R.layout.activity_main);
    20     }
    21  
    22     final static int MSG_DOWNLOAD_OK =1; 
    23     final static int MSG_DOWNLOAD_ERROR =2; 
    24     
    25     Handler handler = new Handler(){
    26         @Override
    27         public void handleMessage(Message msg) {
    28             super.handleMessage(msg);
    29             
    30             switch (msg.what) {
    31             case MSG_DOWNLOAD_OK:
    32                 TextView tv_html= (TextView) findViewById(R.id.tv_html);
    33                 tv_html.setText((String)msg.obj);                
    34                 break;
    35             case MSG_DOWNLOAD_ERROR:
    36                 Toast.makeText(MainActivity.this, "下载源码失败", 1).show();
    37                 break;
    38             default:
    39                 break;
    40             }
    41         }        
    42     };
    43     public void gethtml(View v){
    44         Thread thread = new Thread(){    
    45             public void run() {
    46                  String path = "http://192.168.3.30:8080/index2.html";
    47                  try {
    48                     URL url = new URL(path);
    49                     HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    50                     
    51                     conn.setConnectTimeout(5000);
    52                     conn.setReadTimeout(5000);
    53                     conn.setRequestMethod("GET");                   
    54                     conn.connect();
    55                     
    56                     if(conn.getResponseCode()==200)
    57                     {
    58                         InputStream is = conn.getInputStream();
    59 
    60                         ByteArrayOutputStream baos = new ByteArrayOutputStream();
    61                         byte[] b = new byte[1024];
    62                         int len = 0;
    63                         while((len=is.read(b))!=-1)
    64                         {
    65                             baos.write(b, 0, len);
    66                         }
    67                         is.close();
    68                         baos.close();                                      
    69                         String htmlsource = new String(baos.toByteArray(),"GBK") ;                       
    70                         Message msg= handler.obtainMessage();
    71                         msg.what=MSG_DOWNLOAD_OK;
    72                         msg.obj=htmlsource;
    73                         handler.sendMessage(msg);                        
    74                     }
    75                     else {                       
    76                         Message msg= handler.obtainMessage();
    77                         msg.what=MSG_DOWNLOAD_ERROR;                       
    78                         handler.sendMessage(msg);                        
    79                     }                                                                   
    80                 } catch ( Exception e) {
    81                     e.printStackTrace();
    82                 }    
    83             }
    84             ;
    85         };
    86         thread.start();    
    87     }
    88 }

    activity_main.xml和AndroidManifest.xml与010_02带缓存的图片查看器相同。

    效果图:

    物随心转,境由心造,一切烦恼皆由心生。
  • 相关阅读:
    游戏中的View开发
    下载更新包,并且在任务栏提示进度.
    调用android非unbind的服务中的方法(不使用bindService启动的服务)
    判断android系统中Service是否在运行的方法
    如何从Activity中调用Service中的方法
    android官方文档---应用程序基础---服务的理解(app Component---services)
    怎么通过文件名的String,找到对应的资源ID
    疯狂Java之JDBC 笔记
    android应用将json数据打包在本地,进行读取的代码
    STL 堆的使用
  • 原文地址:https://www.cnblogs.com/woodrow2015/p/4516811.html
Copyright © 2020-2023  润新知