android 字节流缓冲区 字节缓冲流 读写SD卡的内容
16lz
2021-01-26
字节流缓冲区 字节缓冲流 读写SD卡的内容
//【1】 读取SD卡的内容
/** 一般获取SD 卡的目标地址 通过
External 外部的 Storage 存储 Directory 位置
Environment.getExternalStorageDirectory().getpath(); // 获取的目标地址是 /storage/emulated/0 这个表示引用目录,表示是手机内置的sd卡
*
【1】 写入SD卡内容需要加权限
<uses-permission android:name="android.premission.WRITE_EXTERNAL_STORAGE"/>
【2】读取SD卡内容需要加权限
<uses-permission android:name="android.premission.READ_EXTERNAL_STORAGE"/>
*/
public void sdcard(){
//[1]
String path = Environment.getExternalStorageDirectory().getPath();
FileOutputStream fileOutputStream = new FileOutputStream(path+"/sdtest.txt");
System.out.println("SD卡的路径"+path+"/sdtest.txt"); // SD卡的路径/storage/emulated/0/sdtest.txt
// 这个目录是引用目录,直接是内置sd卡的地址 所以这个文件直接存放在 这个目录里面。 // 使用的小米手机,不知道获取别的手机sd卡地址会不会改变
String str = "你好111111";
byte[] bytes = str.getBytes();
fileOutputStream1.write(bytes);
fileOutputStram.flush();
fileOutputStram.close();
}
字节流缓冲区(自己建一个缓冲区出来)
public void copy(){
String path = context.getFilesDir().getPath();
FileInputStream fileInputStream = new FileInputStream(path+"test.txt");
FileOutputStream fileOutputStream = new FileOutputStream(path+"/sdtest.txt");
// 定义一个字节数组,作为缓冲区
byte[] buffer = new byte[1024];
// 定义一个 int 类型的 len 的值来记录读入的缓冲区的字节的数目
int len ;
while( (len = fileInputStream.read(buffer))!=-1){
fileOutputStream.write(buffer,0,len);
}
fileOutputStram.flush();
fileOutputStram.close();
}
//小知识点
/**
*需要计算方法执行了多长时间 current 现在的
long time = System.currentTimeMillis(); // 返回1970 到现在的毫秒数
*/
long startTime = System.currentTimeMillis();
.....程序
long endTime = System.currentTimeMillis();
System.out.print("程序执行了"+(startTime-endTime)+"毫秒");
// 字节缓冲流 BufferInputStream BufferOutputStream
/**
* 字节缓冲流 用于在读写数据时提供缓冲功能。 作用:有效的提高数据的读写效率。
* 【1】创建一个 带缓冲区的输入流 BufferInputStram(new FileInputStream(""))
* 【2】创建一个 带缓冲区的输出流 BufferOutputStram(new FlieOutputStram(""))
* 【3】进行读写 操作就可以了
*
* */
public static void bufferbyteStream(){
try {
long StartTime = System.currentTimeMillis(); // 返回1970 年到现在的毫秒数 多用于计时来用
// sd卡的存储位置
String path = Environment.getExternalStorageDirectory().getPath();
//[1]
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(path+"/sdtest.txt"));
//[2]
BufferedOutputStream bufferedOutputStream =new BufferedOutputStream(new FileOutputStream(path+"/stest.txt"));
//[3]
int len ;
while(( len=bufferedInputStream.read() )!=-1){
bufferedOutputStream.write(len);
}
bufferedInputStream.close();
bufferedOutputStream.close();
long endTime = System.currentTimeMillis();
long time = endTime-StartTime;
System.out.println("总共耗时:"+time+"毫秒"); // 2毫秒 完成
} catch (Exception e) {
e.printStackTrace();
}
}
//【1】 读取SD卡的内容
/** 一般获取SD 卡的目标地址 通过
External 外部的 Storage 存储 Directory 位置
Environment.getExternalStorageDirectory().getpath(); // 获取的目标地址是 /storage/emulated/0 这个表示引用目录,表示是手机内置的sd卡
*
【1】 写入SD卡内容需要加权限
<uses-permission android:name="android.premission.WRITE_EXTERNAL_STORAGE"/>
【2】读取SD卡内容需要加权限
<uses-permission android:name="android.premission.READ_EXTERNAL_STORAGE"/>
*/
public void sdcard(){
//[1]
String path = Environment.getExternalStorageDirectory().getPath();
FileOutputStream fileOutputStream = new FileOutputStream(path+"/sdtest.txt");
System.out.println("SD卡的路径"+path+"/sdtest.txt"); // SD卡的路径/storage/emulated/0/sdtest.txt
// 这个目录是引用目录,直接是内置sd卡的地址 所以这个文件直接存放在 这个目录里面。 // 使用的小米手机,不知道获取别的手机sd卡地址会不会改变
String str = "你好111111";
byte[] bytes = str.getBytes();
fileOutputStream1.write(bytes);
fileOutputStram.flush();
fileOutputStram.close();
}
字节流缓冲区(自己建一个缓冲区出来)
public void copy(){
String path = context.getFilesDir().getPath();
FileInputStream fileInputStream = new FileInputStream(path+"test.txt");
FileOutputStream fileOutputStream = new FileOutputStream(path+"/sdtest.txt");
// 定义一个字节数组,作为缓冲区
byte[] buffer = new byte[1024];
// 定义一个 int 类型的 len 的值来记录读入的缓冲区的字节的数目
int len ;
while( (len = fileInputStream.read(buffer))!=-1){
fileOutputStream.write(buffer,0,len);
}
fileOutputStram.flush();
fileOutputStram.close();
}
//小知识点
/**
*需要计算方法执行了多长时间 current 现在的
long time = System.currentTimeMillis(); // 返回1970 到现在的毫秒数
*/
long startTime = System.currentTimeMillis();
.....程序
long endTime = System.currentTimeMillis();
System.out.print("程序执行了"+(startTime-endTime)+"毫秒");
// 字节缓冲流 BufferInputStream BufferOutputStream
/**
* 字节缓冲流 用于在读写数据时提供缓冲功能。 作用:有效的提高数据的读写效率。
* 【1】创建一个 带缓冲区的输入流 BufferInputStram(new FileInputStream(""))
* 【2】创建一个 带缓冲区的输出流 BufferOutputStram(new FlieOutputStram(""))
* 【3】进行读写 操作就可以了
*
* */
public static void bufferbyteStream(){
try {
long StartTime = System.currentTimeMillis(); // 返回1970 年到现在的毫秒数 多用于计时来用
// sd卡的存储位置
String path = Environment.getExternalStorageDirectory().getPath();
//[1]
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(path+"/sdtest.txt"));
//[2]
BufferedOutputStream bufferedOutputStream =new BufferedOutputStream(new FileOutputStream(path+"/stest.txt"));
//[3]
int len ;
while(( len=bufferedInputStream.read() )!=-1){
bufferedOutputStream.write(len);
}
bufferedInputStream.close();
bufferedOutputStream.close();
long endTime = System.currentTimeMillis();
long time = endTime-StartTime;
System.out.println("总共耗时:"+time+"毫秒"); // 2毫秒 完成
} catch (Exception e) {
e.printStackTrace();
}
}
更多相关文章
- BlobCache算法详解
- Android基础面试简答题
- Android(安卓)读写配置文件properties
- 目前可用的Android(安卓)SDK在线更新镜像服务器:
- 架构1--BufferQueue 和 gralloc
- Android-Android(安卓)10 创建不了文件夹
- Android断点续传原理
- Google官方出品的Android(安卓)App反编绎工具-Enjarify
- 修改android4.2系统源码实现system组和root用户访问sd卡