android 文件操作类简易总结
android 文件操作类(参考链接)
http://www.cnblogs.com/menlsh/archive/2013/04/02/2997084.html
package com.android.wang.androidstudio;
import org.apache.http.util.EncodingUtils;
import android.annotation.TargetApi;
import android.content.Context;
import android.os.Build;
import android.os.Environment;
import android.os.StatFs;
import android.text.format.Formatter; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream; /**
* Created by Administrator on 2016/4/29.
*/
public class FileHelper {
private Context context;
private String SDPATH;//SD卡路径
private String FILESPATH;//文件路径
public FileHelper(Context context)
{
this.context= context;
SDPATH= Environment.getExternalStorageDirectory().getPath();
FILESPATH=this.context.getFilesDir().getPath();
}
public boolean SDCardState(){ //判断SD卡是否可读写
if(Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)){//表示SDCard存在并且可以读写
return true;
}else{
return false;
}
}
public String SDCardPath() {//SDCard路径
if (SDCardState()) {
SDPATH = Environment.getExternalStorageDirectory().getPath();
return SDPATH;
} else {
return null;
}
}
@TargetApi(18)
private String GetSDAvailableSize() {//获取SD可用内存大小
long blockSize=0;
long availableBlocks= 0;
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
if(Build.VERSION.SDK_INT>Build.VERSION_CODES.GINGERBREAD)
{
blockSize = stat.getBlockSizeLong();
availableBlocks = stat.getAvailableBlocksLong();
}
else {
blockSize = stat.getBlockSize();
availableBlocks = stat.getAvailableBlocks();
}
return Formatter.formatFileSize(context, blockSize * availableBlocks);
}
@TargetApi(18)
private String GetSDTotalSize() { //获取SD总内存大小
long blockSize = 0;
long totalBlocks = 0;
File path = Environment.getExternalStorageDirectory();
StatFs stat = new StatFs(path.getPath());
if(Build.VERSION.SDK_INT>Build.VERSION_CODES.GINGERBREAD)
{
blockSize = stat.getBlockSizeLong();
totalBlocks = stat.getBlockCountLong();
}
else {
blockSize = stat.getBlockSize();
totalBlocks = stat.getBlockCount();
} return Formatter.formatFileSize(context, blockSize * totalBlocks);
}
@TargetApi(18)
private String getRomTotalSize() {//获取机身可用内存
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long totalBlocks = stat.getBlockCount();
return Formatter.formatFileSize(context, blockSize * totalBlocks);
}
@TargetApi(18)
private String getRomAvailableSize() { //获得机身可用内存
File path = Environment.getDataDirectory();
StatFs stat = new StatFs(path.getPath());
long blockSize = stat.getBlockSize();
long availableBlocks = stat.getAvailableBlocks();
return Formatter.formatFileSize(context, blockSize * availableBlocks);
}
public File CreateDirOnSDCard(String dir)//在SD上创建目录
{
if(SDCardState()==true) {
File dirFile = new File(SDPATH + File.separator + dir + File.separator);
dirFile.mkdirs();//创建多级目录创建单级目录用mkdir();
return dirFile;
}
else
{
return null;
}
}
public File CreateFileOnSDCard(String fileName) throws IOException { //SD上创建文件(在类和方法后面用throws,直接抛出异常就要用到throw) File file = new File(SDPATH + File.separator + fileName);
if (!file.exists()) { file.createNewFile(); }
return file;
}
public File CreateFileOnSDCard(String dir,String fileName) throws IOException { //SD上的文件目录下创建文件(在类和方法后面用throws,直接抛出异常就要用到throw) File file = new File(SDPATH + File.separator + dir + File.separator + fileName);
if (!file.exists()) {
file.createNewFile(); }
return file;
}
public boolean fileIsExists(String strFile)//判断文件是否存在
{
try
{
File f=new File(strFile);
if(!f.exists())
{
return false;
}
}
catch (Exception e)
{
return false;
}
return true;
}
public File CreateDirOnRom(String dir)//在ROM上创建文件目录
{
File dirFile = new File(FILESPATH + File.separator+dir);
dirFile.mkdirs();
return dirFile;
}
public File CreateFileOnRom(String fileName)throws IOException//在ROM上创建文件目录
{
File file = new File(FILESPATH + File.separator + fileName);
if (!file.exists()) {
file.createNewFile();
}
return file;
}
public void deleteFile(File file) { //删除文件或文件目录
if (file.exists()) { // 判断文件是否存在
if (file.isFile()) { // 判断是否是文件
file.delete(); // 删除文件;
} else if (file.isDirectory()) { // 否则如果它是一个目录
File files[] = file.listFiles(); // 声明目录下所有的文件 files[];
for (int i = 0; i < files.length; i++) { // 遍历目录下所有的文件
this.deleteFile(files[i]); // 把每个文件 用这个方法进行迭代
}
}
file.delete();
} else {
}
}
public static String InputStreamTOString(InputStream in) throws Exception{
int BUFFER_SIZE=4096;
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[BUFFER_SIZE];
int count = -1;
while((count = in.read(data,0,BUFFER_SIZE)) != -1)
outStream.write(data, 0, count); data = null;
return new String(outStream.toByteArray(),"ISO-8859-1");
}
public static InputStream StringTOInputStream(String in) throws Exception{ ByteArrayInputStream is = new ByteArrayInputStream(in.getBytes("ISO-8859-1"));
return is;
}
public File WriteDataToSDCard(String path, String fileName, String str)
{
File file = null;
OutputStream output = null;
try {
InputStream data = StringTOInputStream(str);
CreateDirOnSDCard(path); //创建目录
file = CreateFileOnSDCard(path,fileName ); //创建文件
output = new FileOutputStream(file);
byte buffer[] = new byte[2*1024]; //每次写2K数据
int temp;
while((temp = data.read(buffer)) != -1 )
{
output.write(buffer,0,temp);
}
output.flush();
} catch (Exception e) {
e.printStackTrace();
}
finally{
try {
output.close(); //关闭数据流操作
} catch (Exception e2) {
e2.printStackTrace();
}
}
return file;
}
public String ReadSDFile1(String fileName) { StringBuffer sb = new StringBuffer();
File file = new File(SDPATH + File.separator+ fileName);
try {
FileInputStream fis = new FileInputStream(file);
int c;
while ((c = fis.read()) != -1) {
sb.append((char) c);
}
fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
return sb.toString(); }
public String ReadSDFile2(String fileName) { String sb = new String();
File file = new File(SDPATH + "//" + fileName);
try {
FileInputStream fis = new FileInputStream(file);
int length = fis.available();
byte[] buffer = new byte[length];
fis.read(buffer);
sb = EncodingUtils.getString(buffer, "UTF-8");
fis.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); }
return sb.toString();
}
//在默认Rom目录下创建文件并写数据(mang.txt,"内容")可在data/data/mang.txt
public void WriteFileOnRom(String fileName,String writestr){
try{
FileOutputStream fout =context.openFileOutput(fileName,context.MODE_PRIVATE);
byte [] bytes = writestr.getBytes();
fout.write(bytes);
fout.close();
}
catch(Exception e){
e.printStackTrace();
}
} //读数据
public String ReadFileOnRom(String fileName) {
String res="";
try{
FileInputStream fin = context.openFileInput(fileName);
int length = fin.available();
byte [] buffer = new byte[length];
fin.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");
fin.close();
}
catch(Exception e){
e.printStackTrace();
}
return res; }
//写数据到SD中的文件
public void WriteFileSdcardFile(String fileName,String write_str) throws IOException{
try{
fileName=fileName+SDPATH;
FileOutputStream fout = new FileOutputStream(fileName);
byte [] bytes = write_str.getBytes();
fout.write(bytes);
fout.close();
}
catch(Exception e){
e.printStackTrace();
}
}
//读SD中的文件
public String readFileSdcardFile(String fileName) throws IOException{
String res="";
if(SDCardState()==false)
{
res="NO";
return res;
}
try{
FileInputStream fin = new FileInputStream(fileName);
int length = fin.available();
byte [] buffer = new byte[length];
fin.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");
fin.close();
} catch(Exception e){
e.printStackTrace();
}
return res;
}
public String readSDFile(String fileName) throws IOException { File file = new File(fileName);
String res="";
FileInputStream fis = new FileInputStream(file);
int length = fis.available();
byte [] buffer = new byte[length];
fis.read(buffer);
res = EncodingUtils.getString(buffer, "UTF-8");
fis.close();
return res;
}
//写文件
public void writeSDFile(String fileName, String write_str) throws IOException{ File file = new File(fileName); FileOutputStream fos = new FileOutputStream(file); byte [] bytes = write_str.getBytes(); fos.write(bytes); fos.close();
}
}
android 文件操作类简易总结的更多相关文章
- 大过年的,不下班的,上个Android文件操作类(内部存储和sd卡均可)
package com.kkdiangame.UI.res; import java.io.ByteArrayOutputStream; import java.io.File; import jav ...
- Android FileUtils 文件操作类
系统路径 Context.getPackageName(); // 用于获取APP的所在包目录 Context.getPackageCodePath(); //来获得当前应用程序对应的apk文件的路径 ...
- File 文件操作类 大全
File 文件操作类 大全 许多人都会对文件操作感到很难 我也是 但是一个好的项目中必定会涉及到文件操作的 文件的复制 粘贴 等等等 公司大佬写了 一个文件操作的工具类 感觉还是棒棒的啦 ...
- Android文件操作工具类(转)
Android文件操作工具类(转) 2014/4/3 18:13:35 孤独的旅行家 博客园 这个工具类包含Android应用开发最基本的几个文件操作方法,也是我第一次发博客与大家分享自己写的东 ...
- [C#] 常用工具类——文件操作类
/// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...
- 文件操作类CFile
CFile file; CString str1= L"写入文件成功!"; wchar_t *str2; if (!file.Open(L"Hello.txt" ...
- asp.net文件操作类
/** 文件操作类 **/ #region 引用命名空间 using System; using System.Collections.Generic; using System.Text; usin ...
- Ini文件操作类
/// <summary> /// Ini文件操作类 /// </summary> public class Ini { // 声明INI文件的写操作函数 WritePriva ...
- java csv 文件 操作类
一个CSV文件操作类,功能比较齐全: package tool; import java.io.BufferedReader; import java.io.BufferedWriter; impor ...
随机推荐
- Python学习笔记6-异常捕获取
#--encoding:utf-8-- try: float('abc') except Exception,e: print e try: float(1.2) except Exception,e ...
- AndroidUI 侧滑菜单 DrawerLayout的使用
直接上代码: activity_main.xml: <android.support.v4.widget.DrawerLayout xmlns:android="http://sche ...
- 面试题之——将文件夹下java文件写入到新的文件夹,并修改扩展名
题目:将d:/code/java文件夹下的所有.java文件复制到d:/code/java/jad文件夹下并且将原来的文件的扩展名.java改为.jad 源代码: package com.zyh.in ...
- java中表示二进制、八进制、十进制、十六进制,double、float、整型
java里不能这样表示二进制,只能是 8,10,16进制 8: 前置 0 10: 不需前置 16: 前置 0x 或者 0X double:2 ...
- poj 1064 Cable master ,二分 精度!!!
给出n根绳子,求把它们分割成K条等长的绳子的最大长度是多少? 二分 用 for(int i=0; i<100; ++i) 取代 while(r-l>eps) 循环100次精度能达到1e ...
- SSIS之Foreach循环容器用法
要实现的业务:A数据库服务器上某库的T_GOODS_DECL的状态字段“Is_Delete”标记为“1”的时候删除B数据库服务器上对应库的T_GOODS_DECL表中的记录,二者的主键为“DECL_N ...
- 动态设置 GridView 列宽
/// <summary> /// 设置简单评语列的宽度 /// </summary> /// <param name=&quo ...
- VMware vCenter Converter 使用,Error code: 2147549183 (0x8000FFFF) 解决方案
在实际生产环境中,为了节省成本,会将实体机转换为虚拟机,从而虚拟化. 在公司数据中心环境的中跑VMware vCenter ConverterStandalone Client 4.3,将其中一台on ...
- iOS开发笔记:编译时出现的错误和解决办法
1."std::ios_base::Init::~Init()", referenced from 出现这样的编译问题,是需要再加进libstdc++.dylib和libstdc+ ...
- shell 比较
整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b&qu ...