android平台上的文件下载,文件和文件的操作
16lz
2021-01-23
android平台上对文件的操作和java基本上是相同的
注意用Environment.getExternalStorageDirectory()+"/"获得的SD目录最好
package duohuo.teng.net;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import android.os.Environment;public class FileUtil {private String SDPATH;public FileUtil() {//获得SD卡的路劲SDPATH=Environment.getExternalStorageDirectory()+"/";}/*创建文件 * * */public File createFile(String fileName) throws IOException{File file=new File(SDPATH+fileName);file.createNewFile();return file;}/*创建文件夹 * * */public File createDirs(String dirName){File file=new File(SDPATH+dirName);Boolean b=file.mkdirs();System.out.println(b);return file;}/*判断文件(夹)是否存在 * * */public boolean isFileExist(String path){return new File(SDPATH+path).exists();}public File writeToSDFromInputStream(String path,String fileName,InputStream in){File file=null;OutputStream out = null;createDirs(path);try { path=path+"/"+fileName;System.out.println(path);file=createFile(path);out=new FileOutputStream(file);byte[] buffer=new byte[4*1024];while(in.read(buffer)!=-1){out.write(buffer);}} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {if(out!=null)out.close();if(in!=null)in.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return file;}/*delete file * @return 0 文件不存在 1删除成功 * */public int deleteFile(String fileAllName){File file=new File(SDPATH+fileAllName);if(isFileExist(file.getPath())){return 0;}file.delete();return 1;}}
下面是下载
package duohuo.teng.net;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;import java.net.URLConnection;public class HttpDownloadUtil {/*将文件保存为String * @param urlStr 本机测试是不是ip不是localhost和127.0.0.1,这是指android的IP,电脑是10.0.2.2 * */public String downloadString(String urlStr){StringBuffer result=new StringBuffer();;URL url;InputStream in = null;BufferedReader reader=null;try { url=new URL(urlStr); HttpURLConnection con=(HttpURLConnection)url.openConnection(); in=con.getInputStream();reader=new BufferedReader(new InputStreamReader(in));String line;while((line=reader.readLine())!=null){result.append(line);}} catch (MalformedURLException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();}finally{try {if(reader!=null)reader.close();if(in!=null)in.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}return result.toString();}/*将文件写入SD卡 * @return -1 写入失败 0存在 1写入成功 * @param urlStr 本机测试是不是ip不是localhost和127.0.0.1,这是指android的IP,电脑是10.0.2.2 * */public int downloadFile(String urlStr,String toPath,String fileName){try {URL url=new URL(urlStr);URLConnection con=url.openConnection();InputStream in=con.getInputStream();FileUtil fileUtil=new FileUtil();if(fileUtil.isFileExist(toPath+fileName)){return 0;}File file=fileUtil.writeToSDFromInputStream(toPath, fileName, in);if(file==null){return -1;}} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();return -1;} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();return -1;}return 1;}}
更多相关文章
- Android APK文件安装过程小结
- Android 文件操作
- android从资源文件中读取文件流显示
- android 单元测试 附源码
- android 快速移动sdCard的文件夹
- Android Studio module里面放switch语句报错 R文件找不到
- java.lang.Exception: 密钥库文件不存在: ~/.android/debug.keys
- Android Studio3.0自定义apk输出路径和文件名
- Android 自动化测试—robotium(五)Spinner控件