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 文件操作类简易总结的更多相关文章

  1. 大过年的,不下班的,上个Android文件操作类(内部存储和sd卡均可)

    package com.kkdiangame.UI.res; import java.io.ByteArrayOutputStream; import java.io.File; import jav ...

  2. Android FileUtils 文件操作类

    系统路径 Context.getPackageName(); // 用于获取APP的所在包目录 Context.getPackageCodePath(); //来获得当前应用程序对应的apk文件的路径 ...

  3. File 文件操作类 大全

    File  文件操作类  大全 许多人都会对文件操作感到很难  我也是  但是一个好的项目中必定会涉及到文件操作的 文件的复制 粘贴  等等等 公司大佬写了 一个文件操作的工具类 感觉还是棒棒的啦   ...

  4. Android文件操作工具类(转)

    Android文件操作工具类(转)  2014/4/3 18:13:35  孤独的旅行家  博客园 这个工具类包含Android应用开发最基本的几个文件操作方法,也是我第一次发博客与大家分享自己写的东 ...

  5. [C#] 常用工具类——文件操作类

    /// <para> FilesUpload:工具方法:ASP.NET上传文件的方法</para> /// <para> FileExists:返回文件是否存在&l ...

  6. 文件操作类CFile

    CFile file; CString str1= L"写入文件成功!"; wchar_t *str2; if (!file.Open(L"Hello.txt" ...

  7. asp.net文件操作类

    /** 文件操作类 **/ #region 引用命名空间 using System; using System.Collections.Generic; using System.Text; usin ...

  8. Ini文件操作类

    /// <summary> /// Ini文件操作类 /// </summary> public class Ini { // 声明INI文件的写操作函数 WritePriva ...

  9. java csv 文件 操作类

    一个CSV文件操作类,功能比较齐全: package tool; import java.io.BufferedReader; import java.io.BufferedWriter; impor ...

随机推荐

  1. wx.Notebook

    wx.Notebook This class represents a notebook control, which manages multiple windows with associated ...

  2. javascript第九课"闭包"

    所谓闭包:就是一个函数内部又定义了一个函数,而这个函数能访问外部函数作用域范围内的变量,这个内部函数就叫做闭包!   js中的面向对象都是使用闭包来实现的 闭包里使用的变量会现在当前函数内搜索,没有的 ...

  3. 纯CSS3实现自定义涂鸦风格的边框

    今天我们要来分享一款基于纯CSS3的自定义边框应用,看上去它像一个Tooltip控件,因为下边框有一个小三角,就像很多地方的引用文本框一样.另外这款CSS3边框是涂鸦风格的,看起来很有个性.用CSS3 ...

  4. CSS 垂直居中的5种实现方法

    利用 CSS 来实现对象的垂直居中有许多不同的方法,比较难的是选择那个正确的方法.我下面说明一下我看到的好的方法和怎么来创建一个好的居中网站.         使用 CSS 实现垂直居中并不容易.有些 ...

  5. git SSh key多个key对应多个项目

    必看 1. 本文不教你怎么生成key,主要解决多个项目对应多个SSH KEY的问题,在csdn code库上遇到的人估计很苦恼,为什么多个项目不能用一个key,为什么添加相同的key就会报重复 2. ...

  6. OpenCV学习(1) OpenCV的安装

    前沿 准备了好几天,终于开始了,不管怎样,接下来的这个月一定把这本书很好的啃下来.当然OpenCV可以在很多的IDE下安装与配置,我这里就只在VS2010和VC6.0下安装配置了,当然这篇博文主要讲在 ...

  7. leetcode LRU Cache python

    class Node(object): def __init__(self,k,x): self.key=k self.val=x self.prev=None self.next=None clas ...

  8. [置顶] HDFS文件内容追加(Append)

    HDFS设计之处并不支持给文件追加内容,这样的设计是有其背景的(如果想了解更多关于HDFS的append的曲折实现,可以参考<File Appends in HDFS>:http://bl ...

  9. SUBSTRING_INDEX ——网上的解释

    SUBSTRING_INDEX(str,delim,count)    Returns the substring from string str before count occurrences o ...

  10. weather compare