最近老是让我们从指定IP地址,下载文件。这个IP地址自然就是我们的服务器,服务器提前配置好文件的访问权限。只要我们的这个能直接访问,自然就可以直接下载。代码如下:
package com.sun.iot.demo.activity; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.sun.iot.demo.R; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLDecoder; public class SevenActivity extends Activity { private TextView tv_file ; private Button btn_dowload_file ; private String url = "http://111.231.146.203:8080/res/download/Android-Services.log" ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_seven); tv_file = (TextView)findViewById(R.id.tv_file); btn_dowload_file = (Button)findViewById(R.id.btn_dowload_file); btn_dowload_file.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { new Thread(doeload).start(); } }); } Handler handle = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); Bundle data = msg.getData(); tv_file.setText(data.getString("file")); } }; private void Dowload(String url){ BufferedReader buffer ; StringBuilder sb = new StringBuilder(); String line = "" ; Bundle bundle = new Bundle() ; Message message = new Message(); try { HttpURLConnection conn = (HttpURLConnection)new URL(url).openConnection(); buffer = new BufferedReader(new InputStreamReader(conn.getInputStream())); byte[]bf=new byte[1024]; while((line=buffer.readLine())!=null ){ sb.append(line); } String content = URLDecoder.decode(sb.toString(), "UTF-8"); Log.i("file",content); bundle.putString("file",content); message.setData(bundle); handle.sendMessage(message); } catch (IOException e) { e.printStackTrace(); } } Runnable doeload = new Runnable() { @Override public void run() { Dowload(url); } }; }
一开始,需要了汉字的乱码,怎么改都不行。后来,在tomcat的server.xml里面改了两个编码:
这个编码就是配置tomcat的编码的。后来发现还不行。找了好久,才发现。我文件本身就不是utf-8的编码格式。很尴尬。
所以改了下,就好了。