From f20615641e5df61a73d8db2217b32195d1e7bee5 Mon Sep 17 00:00:00 2001 From: lyRomantic <71614983+lyRomantic@users.noreply.github.com> Date: Wed, 30 Dec 2020 16:25:07 +0800 Subject: [PATCH 01/15] Update lab4.md --- students/net1812070504101/lab4.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/students/net1812070504101/lab4.md b/students/net1812070504101/lab4.md index a57f6a509..b75f00427 100644 --- a/students/net1812070504101/lab4.md +++ b/students/net1812070504101/lab4.md @@ -1,4 +1,4 @@ -# 实验三 +# 实验四 ## 一、实验目标 1.根据选题要求设计界面布局及控件使用 2.布局xml及界面控制操作代码提交并截图 From b803b247b6c0172543b062c0468fb678e3e7d202 Mon Sep 17 00:00:00 2001 From: lyRomantic <2814757819@qq.com> Date: Mon, 4 Jan 2021 22:31:27 +0800 Subject: [PATCH 02/15] add exer6 --- students/net1812070504101/lab6.md | 0 students/net1812070504101/lab6_1.png | Bin 0 -> 21074 bytes students/net1812070504101/lab6_2.png | Bin 0 -> 47404 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 students/net1812070504101/lab6.md create mode 100644 students/net1812070504101/lab6_1.png create mode 100644 students/net1812070504101/lab6_2.png diff --git a/students/net1812070504101/lab6.md b/students/net1812070504101/lab6.md new file mode 100644 index 000000000..e69de29bb diff --git a/students/net1812070504101/lab6_1.png b/students/net1812070504101/lab6_1.png new file mode 100644 index 0000000000000000000000000000000000000000..956f628379fb5b499659fded0e183a6c42a5a6fb GIT binary patch literal 21074 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 sANSUvr_$YxV@N5DfYRM1-7N?L(nw24clUGi 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 Eh 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 Date: Wed, 6 Jan 2021 21:41:48 +0800 Subject: [PATCH 03/15] Update lab6.md --- students/net1812070504101/lab6.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/students/net1812070504101/lab6.md b/students/net1812070504101/lab6.md index e69de29bb..36f49792d 100644 --- a/students/net1812070504101/lab6.md +++ b/students/net1812070504101/lab6.md @@ -0,0 +1,4 @@ +# 实验六 +## 一.实验目标 + +## 二.实验要求 From 8da368f983623a9635baf8154b560205062d5444 Mon Sep 17 00:00:00 2001 From: lyRomantic <71614983+lyRomantic@users.noreply.github.com> Date: Wed, 6 Jan 2021 21:43:12 +0800 Subject: [PATCH 04/15] Update lab6.md --- students/net1812070504101/lab6.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/students/net1812070504101/lab6.md b/students/net1812070504101/lab6.md index 36f49792d..9b701efa4 100644 --- a/students/net1812070504101/lab6.md +++ b/students/net1812070504101/lab6.md @@ -1,4 +1,11 @@ # 实验六 ## 一.实验目标 -## 二.实验要求 +## 二.实验内容 + +## 三.实验步骤 + +## 四.实验结果 + +## 五.实验心得 + From 56ac982f9afc958804cb888978db463472aabf6c Mon Sep 17 00:00:00 2001 From: lyRomantic <71614983+lyRomantic@users.noreply.github.com> Date: Wed, 6 Jan 2021 21:52:35 +0800 Subject: [PATCH 05/15] Update lab6.md --- students/net1812070504101/lab6.md | 225 +++++++++++++++++++++++++++++- 1 file changed, 224 insertions(+), 1 deletion(-) diff --git a/students/net1812070504101/lab6.md b/students/net1812070504101/lab6.md index 9b701efa4..8aaa62b74 100644 --- a/students/net1812070504101/lab6.md +++ b/students/net1812070504101/lab6.md @@ -1,9 +1,232 @@ # 实验六 ## 一.实验目标 +1.掌握Android网络访问方法; +2.理解XML和JSON表示数据的方法。 ## 二.实验内容 - +1. 从网络下载一个文件(图片、MP3、MP4); +2. 保存到手机,在应用中使用文件; +3. 将应用运行结果截图 ## 三.实验步骤 +### 1.创建工具类 fileUtils +``` +public class FileUtils { + private String SDCardRoot; + public FileUtils(){ + //得到当前外部存储设备的目录 + SDCardRoot= Environment.getExternalStorageDirectory()+File.separator; + //File.separator为文件分隔符”/“,方便之后在目录下创建文件 + } + //在SD卡上创建文件 + public File createFileInSDCard(String fileName,String dir) throws IOException { + File file=new File(SDCardRoot+dir+File.separator+fileName); + file.createNewFile(); + return file; + } + //在SD卡上创建目录 + public File createSDDir(String dir)throws IOException{ + File dirFile=new File(SDCardRoot+dir); + dirFile.mkdir();//mkdir()只能创建一层文件目录,mkdirs()可以创建多层文件目录 + return dirFile; + } + + //判断文件是否存在 + public boolean isFileExist(String fileName,String dir){ + File file=new File(SDCardRoot+dir+File.separator+fileName); + return file.exists(); + } + + //将一个InoutStream里面的数据写入到SD卡中 + public File write2SDFromInput(String fileName,String dir,InputStream input){ + File file=null; + OutputStream output=null; + try { + //创建目录 + createSDDir(dir); + //创建文件 + file=createFileInSDCard(fileName,dir); + //写数据流 + output=new FileOutputStream(file); + byte buffer[]=new byte[4*1024];//每次存4K + int temp; + //写入数据 + while((temp=input.read(buffer))!=-1){ + output.write(buffer,0,temp); + } + output.flush(); + } catch (Exception e) { + System.out.println("写数据异常:"+e); + } + finally{ + try { + output.close(); + } catch (Exception e2) { + System.out.println(e2); + } + } + return file; + } + +} +``` +### 2.创建工具类 HttpDownloader +``` +public class FileUtils { + + private String SDCardRoot; + + public FileUtils(){ + //得到当前外部存储设备的目录 + SDCardRoot= Environment.getExternalStorageDirectory()+File.separator; + //File.separator为文件分隔符”/“,方便之后在目录下创建文件 + } + + //在SD卡上创建文件 + public File createFileInSDCard(String fileName,String dir) throws IOException { + File file=new File(SDCardRoot+dir+File.separator+fileName); + file.createNewFile(); + return file; + } + + //在SD卡上创建目录 + public File createSDDir(String dir)throws IOException{ + File dirFile=new File(SDCardRoot+dir); + dirFile.mkdir();//mkdir()只能创建一层文件目录,mkdirs()可以创建多层文件目录 + return dirFile; + } + + //判断文件是否存在 + public boolean isFileExist(String fileName,String dir){ + File file=new File(SDCardRoot+dir+File.separator+fileName); + return file.exists(); + } + + //将一个InoutStream里面的数据写入到SD卡中 + public File write2SDFromInput(String fileName,String dir,InputStream input){ + File file=null; + OutputStream output=null; + try { + //创建目录 + createSDDir(dir); + //创建文件 + file=createFileInSDCard(fileName,dir); + //写数据流 + output=new FileOutputStream(file); + byte buffer[]=new byte[4*1024];//每次存4K + int temp; + //写入数据 + while((temp=input.read(buffer))!=-1){ + output.write(buffer,0,temp); + } + output.flush(); + } catch (Exception e) { + System.out.println("写数据异常:"+e); + } + finally{ + try { + output.close(); + } catch (Exception e2) { + System.out.println(e2); + } + } + return file; + } + +} +``` + +### 3.MianActivty +``` +package edu.hzuapp.androidlabs.fileutils; + +import android.os.Bundle; +import android.view.View; +import android.widget.Button; + +import androidx.appcompat.app.AppCompatActivity; + +//1,在Manifest文件中注册Internet和读写SDCard的权限 +//2,下载不能在主线程中进行,要开分线程 +public class MainActivity extends AppCompatActivity implements View.OnClickListener{ + Button but1,but2; + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + but1=(Button)findViewById(R.id.but1); + but1.setOnClickListener(this); + but2=(Button)findViewById(R.id.but2); + but2.setOnClickListener(this); + } + + @Override + public void onClick(View v) { + if(v==but1){ + new downloadFileThread().start(); + }else if(v==but2){ + new downloadMP3Thread().start(); + } + } + + class downloadFileThread extends Thread{ + public void run(){ + HttpDownloader httpDownloader=new HttpDownloader(); + String fileData=httpDownloader.downloadFiles("http://mystudy.bj.bcebos.com/AndroidDemo_009.xml"); + System.out.println(fileData); + } + } + + class downloadMP3Thread extends Thread{ + public void run(){ + HttpDownloader httpDownloader=new HttpDownloader(); + int downloadResult=httpDownloader.downloadFiles( + "http://fengkui.bj.bcebos.com/%E8%B6%B3%E9%9F%B3.mp3","BoBoMusic","足音.mp3"); + System.out.println("下载结果:"+downloadResult); + } + } +} +``` +### 4.activity_main.xml xml文件 +``` +