Tomcat服务器可以到Apache的官网去下载http://tomcat.apache.org/,如何配置和使用百度下也有很多介绍,只要把Java的SDK配下java_home环境变量就行了,因为Tomcat也是用Java程序写的所以需要依赖Java的库。如果配置成功在IE上输入:http://localhost:8080/回车就会出现Tomcat的主页

对SD卡进行操作需要新建一个工具类可以写入字节也可以写入字符  FileUitls.java

package com.example.utils;import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;import android.os.Environment;/*** 文件管理类    在以后的开发中也可以使用这个工具类,提高代码的利用性* 只要是对SD卡的操作* 1、获取SD卡路径   getSDPATH* 2、在SD卡上根据传入的目录名创建目录  createSDDir* 3、在创建上目录后可以在该目录上创建文件    createSDFile* 4、检测文件是否存在  isFileExist* 5、将一个InputStream写入到SD卡中   write2SDFromInput* 6、将一个字符流写入到SD卡 write2SDFromWrite* 注:如果要写入SD卡,只要调用write2SDFromInput函数即可* @author Administrator**/
public class FileUitls {private static String SDPATH;public FileUitls(){//得到当前设备外部存储设备的目录SDPATH = Environment.getExternalStorageDirectory() + File.separator;}/*** 获取当前SD卡的根目录* @return*/public String getSDPATH(){return SDPATH;}/*** SD卡上创建目录*/public File createSDDir(String dirName){File dir = new File(SDPATH + dirName);System.out.println("createSDDir " + SDPATH + dirName);dir.mkdir();return dir;}/*** SD卡上创建文件*/public File createSDFile(String fileName)throws IOException{File file = new File(SDPATH + fileName);System.out.println("createSDFile " + SDPATH + fileName);file.createNewFile();return file;}/*** 判断SD卡上的文件是否存在*/public boolean isFileExist(String fileName){File file = new File(SDPATH + fileName);return file.exists();}/*** 将一个InputStream字节流写入到SD卡中*/public File write2SDFromInput(String Path, String FileName, InputStream input){File file = null;OutputStream output = null;   //创建一个写入字节流对象try{createSDDir(Path);    //根据传入的路径创建目录file = createSDFile(Path + FileName); //根据传入的文件名创建output = new FileOutputStream(file);byte buffer[] = new byte[4 * 1024];   //每次读取4Kint num = 0;      //需要根据读取的字节大小写入文件while((num = (input.read(buffer))) != -1){output.write(buffer, 0, num);}output.flush();  //清空缓存}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{try{output.close();}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}return file;}/*** 把传入的字符流写入到SD卡中* @param Path* @param FileName* @param input* @return*/public File write2SDFromWrite(String Path, String FileName, BufferedReader input){File file = null;FileWriter output = null;   //创建一个写入字符流对象BufferedWriter bufw = null;try{createSDDir(Path);    //根据传入的路径创建目录file = createSDFile(Path + FileName); //根据传入的文件名创建output = new FileWriter(file);bufw = new BufferedWriter(output);String line = null;while((line = (input.readLine())) != null){System.out.println("line = " + line);bufw.write(line);bufw.newLine();}bufw.flush();  //清空缓存}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{try{bufw.close();}catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}return file;}
}

还需要创建一个下载工具类  HttpDownloader.java

对于下载类,要注意的就是下载文件变成乱码问题,如果有中文最好指定gb3212编码或UTF-8

package com.example.utils;import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;public class HttpDownloader {private URL url = null;/*** 根据URL下载文件,前提是这个文件当中的内容是文本,函数的返回值就是文件当中的内容 * 1.创建一个URL对象* 2.通过URL对象,创建一个HttpURLConnection对象 * 3.得到InputStram * 4.从InputStream当中读取数据* * @param urlStr* @return*/public String download(String urlstr) {StringBuffer sb = new StringBuffer();String line = null;BufferedReader buffer = null;try {// 创建一个URL对象url = new URL(urlstr);// 创建一个Http连接HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();// 使用IO流读取数据buffer = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), "gb2312")); // 防止中文出现乱码  gb2312while ((line = buffer.readLine()) != null) {sb.append(line);}} catch (Exception e) {e.printStackTrace();} finally {try {buffer.close();} catch (Exception e) {e.printStackTrace();}}return sb.toString();}/*** 可以下载字节流文件到SD卡中* * @param urlstr  要下载文件的URI地址* @param Path  在SD卡上文件夹的路径* @param FileName  在SD卡上文件的名称* @return 该函数返回整型:-1代表下载失败,0代表下载成功,1代表文件已经存在*/public int download(String urlstr, String Path, String FileName) {InputStream inputstream = null;BufferedReader buffer = null;try {FileUitls fileUitls = new FileUitls();System.out.println(Path + FileName);if (fileUitls.isFileExist(Path + FileName)) {return 1;} else {// 获取URI中的字节流inputstream = getInputStreamFromUrl(urlstr);// 把字节流转换成字符流buffer = new BufferedReader(new InputStreamReader(inputstream,"gb2312")); // 防止中文出现乱码   UTF-8File resultFile = fileUitls.write2SDFromWrite(Path, FileName,buffer);if (resultFile == null) {return -1;}}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();return -1;} finally {try {if(buffer != null)buffer.close();} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}return 0;}/*** 可以下载字符流和字节流文件到SD卡中* * @param urlstr* @param Path* @param FileName* @return 该函数返回整型:-1代表下载失败,0代表下载成功,1代表文件已经存在*/public int downFile(String urlstr, String Path, String FileName) {InputStream inputstream = null;try {FileUitls fileUitls = new FileUitls();if (fileUitls.isFileExist(Path + FileName)) {return 1;} else {inputstream = getInputStreamFromUrl(urlstr);File resultFile = fileUitls.write2SDFromInput(Path, FileName,inputstream);if (resultFile == null) {return -1;}}} catch (Exception e) {// TODO: handle exceptione.printStackTrace();return -1;} finally {try {inputstream.close();} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}return 0;}/*** 根据URL得到输入流* * @param urlstr* @return* @throws MalformedURLException* @throws IOException*/private InputStream getInputStreamFromUrl(String urlstr)throws MalformedURLException, IOException {// TODO Auto-generated method stuburl = new URL(urlstr);HttpURLConnection urlConn = (HttpURLConnection) url.openConnection();InputStream inputStream = urlConn.getInputStream();return inputStream;}
}

在主界面上有添加两个按钮,分别下载歌词和歌曲

package com.example.download;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;import com.example.utils.HttpDownloader;public class Download extends Activity {private Button downloadtxt;private Button downloadmp3;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);downloadtxt = (Button) findViewById(R.id.download_txt);downloadtxt.setOnClickListener(new DownLoadTxt());downloadmp3 = (Button) findViewById(R.id.download_mp3);downloadmp3.setOnClickListener(new DownLoadMp3());}/*** 下载文本文件,主要是字符流* @author Administrator**/class DownLoadTxt implements OnClickListener {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubHttpDownloader httpDownloader = new HttpDownloader();int result = httpDownloader.download("http://192.168.0.152:8080/mp3/a1.lrc", "mp3Test/abc/","a1.lrc");System.out.println("down load txt result = " + result);// String lrc =// httpDownloader.download("http://192.168.0.152:8080/mp3/a1.lrc");// System.out.println("down load txt = " + lrc);}}/*** 下载字节流文件,也可以下载字符流文件* @author Administrator**/class DownLoadMp3 implements OnClickListener {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubHttpDownloader httpDownloader = new HttpDownloader();int result = httpDownloader.downFile("http://192.168.0.152:8080/mp3/a1.mp3", "mp3Test/","a1.mp3");System.out.println("downfile load txt result = " + result);}}
}

其中192.168.0.152是本地IP地址8080是Tomcat的端口号

下载后的两个文件如图

样例代码

点击打开链接

Android开发之下载Tomcat服务器的文件到模拟器的SD卡相关推荐

  1. android下载zip到assets,Android将assets中的zip压缩文件解压到SD卡

    程序首先要获取写外部存储权限: 程序: package com.hu.andstar; import java.io.File; import java.io.FileOutputStream; im ...

  2. Android开发之--(WIFI,蓝牙,电池,背光,SD卡,摄像头,按键,MIC,重力感应等)功能的简单使用

    1.WIFI(打开,关闭,使能,扫描等) 2.蓝牙(打开关闭) 3.电池(获取电池的各种参数和状态信息) 4.背光(背光调节) 5.U盘/SDcard(判断是否插入,读取等) 6.屏幕校准(准确的说是 ...

  3. Android模拟器中sd卡的创建和文件的上传

    在使用android 模拟器的sd卡上传文件的时候出现过如下的错误: ailed to push selection: Invalidargument Failed to push the item( ...

  4. 上传音乐到Android模拟器的SD卡,并在Android模拟器上播放

    这几天学习Android,准备写个音乐播放软件,以后会介绍.不过,在新建的模拟器中并没有音乐.因为模拟器是新配置的,里面没有音乐或视频等文件,需要用户自己添加进去.下面介绍一下我添加文件到模拟器的SD ...

  5. android项目中使用的服务器上,android 开发中使用okhttp上传文件到服务器

    开发android手机客户端,常常会需要上传文件到服务器,比如:你手机里的照片. 使用okhttp会是一个很好的选择.它使用很简单,而且运行效率也很高. 首先,在 app/build.gradle 的 ...

  6. linux服务器批量文件上传,Windows定时任务下载linux服务器批量文件到本地

    编写批文件 1.1 编写main.bat文件 E: cd logs ftp -n -s:"E:\logs\mget.bat" 1.2 编写mget.bat文件 open ip地址 ...

  7. Android手机连接到Tomcat服务器

    本文是转载文章,文章的来源:csdn博客 博主:monkey_study 文章:Android手机连接到TOmcat服务器 博文地址:https://blog.csdn.net/monkey_stud ...

  8. 【实操日记】使用 PyQt5 设计下载远程服务器日志文件程序

    最近通过 PyQt5 设计了一个下载服务器指定日期日志文件的程序,里面有些有意思的技术点,现在做一些分享. PyQt5 是一套 Python 绑定 Digia Qt5 应用的框架,是最强大的 GUI ...

  9. 老罗android开发视频教程 下载地址

    感觉老罗android开发视频教程讲得挺好挺全面的,适合新手学习.分享 老罗android开发视频教程 下载地址: 电驴:http://www.verycd.com/topics/2929580/ 老 ...

最新文章

  1. 富贵包这种常见颈椎病怎么改善?
  2. s2-045 java_S2-045漏洞初步分析
  3. 目前电子计算机已经发展到,目前电子计算机已经发展到什么计算机?
  4. 洛谷 - P1361 - 小M的作物 - 最小割 - 最大权闭合子图
  5. 线性回归(一)---一元线性回归
  6. 惊艳!Uber 的豪华开源深度学习“全家桶”
  7. JBoss安装与配置
  8. windowsxp主题包教大家如何制作windows7主题包
  9. 一些堪称神器却少为人知的网站或软件(整理自知乎)
  10. 网络1711-12信管1711-12 图 作业评分
  11. F - Assassin’s Creed
  12. 3万字报告拆解:硅谷寒冬,投资人还在哪些赛道烧钱?|我在硅谷看未来
  13. 无限火力跳跳机器人_2021LOL无限火力机器人最强出装和天赋介绍
  14. 人活一辈子,到底为了什么而工作?这是我看过最好的答案
  15. 位置定位(LocationManager)
  16. python如何爬虫股票数据_python爬虫实例,股票数据定向爬虫
  17. 全国大学生软件测试大赛Web应用测试(二)Selenium功能测试环境配置
  18. 简单的python装b代码_一秒学会,小白也能上手,最简单的装逼代码
  19. KVM切换器工作原理
  20. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第2天早晨又将剩下 的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时, 就只

热门文章

  1. 北京CBD核心区有哪些值得加入的科技公司
  2. IDT Source Code Running Guide(Linux+ffmpeg-0.11.1+opencv-2.4.2)
  3. Metis从安装到使用全教程(Linux)
  4. 有关input输入框内容改变后的触发事件
  5. 图像的上采样(upsampling)与下采样(subsampled)
  6. Java IO:BIO和NIO区别及各自应用场景
  7. 1.1 OpenFlow 概述
  8. 微信小程序(JS逻辑文件)
  9. 《电路学习第三天》 之 线性稳压电源的设计
  10. Required request body is missing: public错误