- 浏览: 177353 次
- 性别:
- 来自: 深圳
文章分类
/** * 下载音乐文件到指定目录 * @param musicPath * @param musicName * @param singerName */ public void downloadMusic(final String musicPath, String musicName, String singerName ) { String dir = "ccpod/downloadMusic"; final String filePath = "/sdcard/ccpod/downloadMusic/" + musicName +"-"+ singerName +".mp3"; FileService fileService = new FileService(); fileService.createFileDir(dir); fileService.createFile(filePath); Runnable r = new Runnable(){ @Override public void run() { // TODO Auto-generated method stub int count; try { URL url = new URL(musicPath); InputStream input = new BufferedInputStream(url.openStream()); OutputStream output = new FileOutputStream(filePath); byte data[] = new byte[1024]; while ((count = input.read(data)) != -1) { output.write(data, 0, count); System.out.println(count); } output.flush(); output.close(); input.close(); } catch (Exception e) { Log.e("error",e.getMessage().toString()); System.out.println(e.getMessage().toString()); } } }; new Thread(r).start(); } /** * 下载歌词文件到指定目录 * @param lrcPath * @param musicName * @param singerName */ public void downloadLyric(final String lrcPath, String musicName, String singerName) { String dir = "ccpod/lyric"; final String filePath = "/sdcard/ccpod/lyric/" + musicName + "-" + singerName + ".lrc"; FileService fileService = new FileService(); fileService.createFileDir(dir); fileService.createFile(filePath); Runnable r = new Runnable() { @Override public void run() { // TODO Auto-generated method stub StringBuffer sb = new StringBuffer(); try { URL url = new URL(lrcPath); InputStream input = new BufferedInputStream( url.openStream()); BufferedReader br = new BufferedReader( new InputStreamReader(input,"GB2312")); Writer writer = new OutputStreamWriter(new FileOutputStream(filePath)); String data = ""; while ((data = br.readLine()) != null) { sb.append(data+ "\r\n"); } writer.write(sb.toString()); writer.close(); input.close(); } catch (Exception e) { Log.e("error", e.getMessage().toString()); } } }; new Thread(r).start(); }
下载歌词时要注意inputStream的转码,由于服务器中的xml文件是用gb2312编码,所以应按照原来的格式读进来
其中创建文件和文件目录代码如下:
FileService.java public boolean createFileDir(String dirName) { dirName = Environment.getExternalStorageDirectory() + "/" + dirName; File dir = new File(dirName); if (dir.exists()) { return false; } if (!dirName.endsWith("/")) { dirName += File.separator; } if (dir.mkdirs()) { return true; } else return false; } public boolean createFile(String fileName){ File file = new File(fileName); if(file.exists()){ System.out.println("创建单个文件:"+ fileName + "失败,目标文件已存在"); return false; } if(!file.getParentFile().exists()){ System.out.println("目标文件所在目录不存在,准备创建它"); return false; } try { if(file.createNewFile()){ return true; }else{ return false; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } }
[img]
[/img]
参考资料:
Android中文乱码彻底解决
http://www.iteye.com/topic/509046
Android 中下载文件到sdcard和进度条小结
http://www.linuxidc.com/Linux/2011-08/40941.htm
Android中的自动下载歌词
http://www.eoeandroid.com/forum.php?mod=viewthread&tid=61595
发表评论
-
跳转至Google Play,rate,more推广功能
2014-08-19 15:09 1116String appPackageName = getPac ... -
Activity 全透明属性
2014-07-02 15:10 542android:theme="@android:st ... -
android平台运行flash游戏
2014-03-31 19:20 821android平台运行flash游戏 http://blo ... -
遍历指定目录下的图片文件 显示在gridview
2014-03-05 12:49 812gridview布局 <?xml version=& ... -
Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现
2014-01-06 15:11 1022http://blog.csdn.net/guolin_b ... -
android 透明效果
2013-06-28 17:25 910参考http://2960629.blog.51cto ... -
拦截Home键
2013-03-19 12:03 949主要就是重写 onAttachedTo ... -
不同应用间数据共享
2013-03-18 11:16 831Android不同应用之间数据的共享有许多方式,但是我觉得还是 ... -
root情况下静默安装
2012-12-17 11:12 819参考 http://blog.csdn.net/su1216/ ... -
app推广必备功能:分享到,更多应用,创建快捷方式
2012-12-14 13:14 1190public class ShareTool { ... -
获取屏幕上正在显示的activity
2012-12-08 17:19 1038参考文章http://chroya.iteye.com/blo ... -
android异步加载数据
2012-11-07 13:55 963参考http://blog.csdn.net/sfshine/ ... -
Activity去除标题栏和状态栏
2012-11-06 15:50 1379方法一:直接在xml文件里设置 //全屏(隐藏标题栏和状 ... -
无法清除的Notification,直到点击了才可以消除
2012-11-06 12:35 2221参考文章 http://www.cnblogs.com/new ... -
vpn
2012-10-30 17:17 705参考文章http://blog.csdn.net/whyonl ... -
开机启动Service
2012-10-25 14:58 866程序执行效果为: 开机后跳转到MainActivity并执行定 ... -
Android 定时执行任务
2012-10-25 13:28 1971本程序执行效果为: 隔3秒打印"收到广播" ... -
打开关闭移动数据、wifi、gps
2012-10-13 23:11 1004参考 http://blog.csdn.net/anzhu_1 ... -
联网自动开启Service
2012-10-12 10:13 945参考http://blog.csdn.net/lvron/ar ... -
从assets复制文件到sd卡
2012-09-28 21:34 2921参考文章 批量从assets复制文件到sd卡 http://l ...
相关推荐
预置一些文件到系统sdcard目录
通过以上方法,开发者可以有效地在Android 2.3及其后续版本中获取和管理内存目录和SDCard目录,为用户提供安全、便捷的文件存储服务。在实际开发中,还需关注Android系统的更新和最佳实践,以保持代码的兼容性和效率...
在Android平台上,播放SDcard(外部存储)中的所有音频文件是一项常见的任务,尤其对于音乐播放器或者媒体应用来说。这个任务涉及到多个知识点,包括文件系统操作、多媒体处理、以及Android的权限管理。以下是对这些...
现在,当用户点击WebView中的文件下载链接时,系统会自动将其保存到SDCARD的指定目录,并且这个过程对用户是透明的,实现了静默下载。 在实际项目中,我们可能还需要处理一些额外的逻辑,例如监听下载进度、处理...
代码如下:// 读取sdcard文件private void ...// sdcard下子目录文件String ret = “”;try {FileInputStream fis = new FileInputStream(fileName);int len = fis.available();byte []buffer = new byte[len]; fis
这个文件通常位于Android SDK的`<Android_sdk_path>\system-images\`目录下,根据不同的Android版本和API级别,其路径会有所变化。 2. **打开sdcard.img文件** 要打开这个文件,我们通常需要使用特定的工具,例如`...
综上所述,检测Android系统中是否存在SDcard并创建文件的过程涉及到Android的存储权限管理、SDcard状态检查、文件系统的操作以及Java IO流的使用。在开发过程中,要遵循Android的最佳实践,确保应用在不同版本的...
在Android平台上,对SDCard(外部存储)进行文件操作是应用程序与用户交互的重要部分,尤其对于需要存储大量数据或媒体文件的应用来说。本教程将详细解释如何在Android中读写SDCard文件,非常适合初学者入门。 首先...
/ 参数说明 // context:上下文 // dialogid:对话框ID // title:对话框标题 // callback:一个传递Bundle参数的回调接口 ... // 其他的直接根据后缀进行索引,比如.wav文件图标的索引为"wav
例如,对于SD卡中的文件,路径通常以`/storage/emulated/0/`或`/mnt/sdcard/`开头。 3. **异常处理**:上述代码中包含了对`IOException`的捕获,这是处理文件操作中可能出现的错误,如文件不存在、无权限或磁盘满等...
Android7.0 Intent打开文件管理器 获取文件真实路径。虽然网上很多demo,但是没有一个能够兼容所有Android机的,去网上学习了然后自己亲测过手机分别有Android7.0/6.0/4.3个版本。
本文将深入探讨如何在Android TV和手机上获取SDCARD(内部或外部)以及USB设备的路径。 首先,我们要明白在Android中,存储路径的管理是基于Android的存储模型。自Android 4.4(KitKat)版本开始,引入了“可卸载的...
一个关于文件操作的静态工具类 实现手机SD卡目录或文件的拷贝 移动 删除 递归 Demo中有详细注释 在进行Demo测试时 建议先把测试的文件备份一下在测试 否则删除就找不回了 具体可见我博客...实现手机SD卡目录或文件的...
在Android系统中,获取OTG(On-The-Go)U盘的路径以及内部或外部SD卡的路径是进行文件操作的基础。这篇详细解释将围绕如何在Android M及以上版本的设备上实现这一功能,并提供一个简单实用的代码示例。 首先,我们...
在Android系统中,将中文文件镜像上传到SD卡是一个常见的需求,特别是在处理系统更新、应用安装或数据备份时。本文将深入探讨如何在Android设备上实现这一操作,重点介绍与"android"、"镜像"、"中文"以及"UltraISO...
接着,当文件成功推送到模拟器的sdcard后,可以在模拟器中使用DevTools中的MediaScanner服务来扫描媒体文件,从而使得新增的媒体文件能够在模拟器上的音乐播放器中被识别和播放。此外,也可以通过在模拟器上执行adb ...
压缩包中的资源可能包含示例代码,用于演示如何在Android应用中实现内部存储和SDCard存储的文件操作,包括创建、读取、写入和删除文件。通过阅读和理解这些代码,开发者可以更好地掌握Android文件存储的实践技巧。 ...
在Android应用开发中,有时我们需要从应用程序的内部资源或外部存储空间读取各种类型的文件,如配置文件(如ini)和图像资源。本教程将详细讲解如何使用Android原生API来处理这两种情况。 首先,让我们关注如何从`...
`getExternalStorageDirectory()`返回根目录,`getExternalStoragePublicDirectory(String type)`则可获取特定类型的公共目录,如下载、音乐等。 3. **文件操作API**:`java.io.File`类是进行文件操作的核心,包括...
在Android开发中,将网络上的图片下载到SDCard并显示是一项常见的需求。这个源码示例提供了一种方法来实现这一功能。以下是基于标题和描述的相关知识点详解: 1. **Android权限管理**: 在Android中,访问SDCard...