收藏文章 楼主

文件复制与下载

版块:android   类型:普通   作者:小绿叶技术博客   查看:3292   回复:0   获赞:2   时间:2019-06-17 11:48:29
package com.example.administrator.www;

import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;

import java.io.File;
import java.io.FileDescriptor;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//文件复制
//将SD卡根目录下的Environment.pptx文件复制到其他目录
//1.将文件复制到SD下的openstack目录

//源文件
File sourceFile = new File(Environment.getExternalStorageDirectory(), "Environment.pptx");
Log.e("源文件路径", sourceFile.getAbsolutePath());

//目标文件
File targetDir = new File(getExternalFilesDir(null), "swift");
if (!targetDir.exists()) {
targetDir.mkdir();
}
File targetFile = new File(targetDir, "Environment.pptx");
if (!targetFile.exists()) try {
targetFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
Log.e("目标文件路径", targetFile.getAbsolutePath());


//蚂蚁搬家
try {

//文件输入流
FileInputStream inputStream = new FileInputStream(sourceFile);


//文件输出流
FileOutputStream outputStream = new FileOutputStream(targetFile);

//每次流读取的长度
int length = 0;//范围0~1024
byte[] bytes = new byte[1024];//每次读取数据流中数据是先缓存到数组中

while ((length = inputStream.read(bytes)) != -1) {//读
outputStream.write(bytes, 0, length);
}

inputStream.close();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}

//文件下载
//文件下载,下载到SD卡的Download目录下
new Thread(new Runnable() {
@Override
public void run() {
try {
URL url = new URL("http://10.32.9.10:8081/swift/Environment.pptx");
URLConnection connection = url.openConnection();//连接服务器
//强转为HTTP类型的URLConnection
HttpURLConnection httpURLConnection = (HttpURLConnection) connection;
httpURLConnection.setRequestMethod("GET");//设置请求方式
//验证是否请求成功。200代表成功,404代表服务器项目资源找不到
if (200 == httpURLConnection.getResponseCode()) {
//服务器返回给我们的IO数据流
InputStream inputStream = httpURLConnection.getInputStream();

//目标文件,第一句话是SD卡,引号是目录
File targetDir = new File(Environment.getExternalStorageDirectory(), "openstack");
if (!targetDir.exists()) {
targetDir.mkdir();
}
File targetFile = new File(targetDir, "Environment.pptx");
if (!targetFile.exists()) try {
targetFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
//文件输出流
FileOutputStream outputStream = new FileOutputStream(targetFile);

//每次流读取的长度
int length = 0;//范围0~1024
byte[] bytes = new byte[1024];//每次读取数据流中数据是先缓存到数组中

while ((length = inputStream.read(bytes)) != -1) {//读
outputStream.write(bytes, 0, length);
}

inputStream.close();
outputStream.close();


}
} catch (Exception e) {
e.printStackTrace();
}
}

;
}).start();


}

}

提供企业建站服务,免费网防系统,提交信息登录 http://yundun.ddoss.cn 邮箱: proposal@ddoss.cn 
回复列表
默认   热门   正序   倒序

回复:文件复制与下载

头像

用户名:

粉丝数:

签名:

资料 关注 好友 消息