android IO流操作文件(存储和读取)

时间:2024-01-05 14:41:02

存储文件:

public class FileOperate extends Activity {
private static final String FILENAME = "mydata.txt" ;// 设置文件名称
private static final String DIR = "ljpdata" ; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); // 调用布局文件
if(Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)){ // 如果sdcard存在
File file = new File(Environment
.getExternalStorageDirectory().toString()
+ File.separator
+ DIR + File.separator + FILENAME) ; // 定义File类对象
if (! file.getParentFile().exists()) { // 父文件夹不存在
file.getParentFile().mkdirs() ; // 创建文件夹
}
PrintStream out = null ; // 打印流对象用于输出
try {
out = new PrintStream(new FileOutputStream(file, true)); // 追加文件
out.println("山东大学软件学院(SDU,www.sdu.edu.cn),讲师:学生");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (out != null) {
out.close() ; // 关闭打印流
}
}
} else { // SDCard不存在,使用Toast提示用户
Toast.makeText(this, "保存失败,SD卡不存在!",Toast.LENGTH_LONG).show();
}
}
}

读取文件:

public class FileOperate extends Activity {
private static final String FILENAME = "mydata.txt" ; // 设置文件名称
private static final String DIR = "ljpdata" ; // 设置保存文件夹
private TextView msg = null ; // 文本显示
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.main); // 调用布局文件
this.msg = (TextView) super.findViewById(R.id.msg) ;
if(Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)){ // 如果sdcard存在
File file = new File(Environment
.getExternalStorageDirectory().toString()
+ File.separator
+ DIR + File.separator + FILENAME) ; // 定义File类对象
if (! file.getParentFile().exists()) { // 父文件夹不存在
file.getParentFile().mkdirs() ; // 创建文件夹
}
Scanner scan = null ; // 扫描输入
try {
scan = new Scanner(new FileInputStream(file)) ; // 实例化Scanner
while(scan.hasNext()){ // 循环读取
this.msg.append(scan.next() + "
") ; // 设置文本
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (scan != null) {
scan.close() ; // 关闭打印流
}
}
} else { // SDCard不存在,使用Toast提示用户
Toast.makeText(this, "读取失败,SD卡不存在!",Toast.LENGTH_LONG).show();
}
}
}

Android将图像转换成流存储与将流转换成图像

//take the image to byte[]
byte[] byteIcon = userIcon; //将字节数组即头像从二进制流转换成drawable
if(byteIcon != null){
  ByteArrayInputStream bais = new ByteArrayInputStream(byteIcon);
userIconDrawable = Drawable.createFromStream(bais, "image");
}
BitMap userIcon;

//将bitmap转换成drawable
ByteArrayOutputStream os = new ByteArrayOutputStream();
//参数1转换类型,参数2压缩质量,参数3字节流资源
userIcon.compress(CompressFormat.PNG, , os);
//将Drawable 转成bitmap
BitmapDrawable tempDrawable = (BitmapDrawable) DrawableImage;
tempDrawable.getBitmap();