package com.dxm.util;
/*------------------------------------------------------------------------
在此类执行操作前请确保获得权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
------------------------------------------------------------------------
*/
import android.os.Environment;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class TIo{
//SD卡要目录
public static String SDPATH = Environment.getExternalStorageDirectory().getPath() + "/";
//返回文件或目录全名
public static String getFullPath( String AFileOrDir)
{
return SDPATH+AFileOrDir;
}
//返回目录下的所有子目录或文件对象
public static File[] getFileOrDirList( String ADir)
{
File[] ARes = null;
try
{
File AFile = new File(SDPATH+ADir);
ARes = AFile.listFiles();
}
catch(Exception er){ARes = new File[0];}
return ARes;
}
//返回目录下的所有子目录或文件对象名称
public static String[] getFileOrDirNameList( String ADir)
{
String[] ARes = new String[0];
File[] AFs = getFileOrDirList(ADir);
ARes = new String[AFs.length];
for( int i=0;i<AFs.length;i++)
{
try
{
ARes[i] = AFs[i].getName();
}
catch(Exception er){;}
}
return ARes;
}
//创建目录
public static void DoCreateDir( String ADir)
{
File ADscDir = new File(SDPATH+ADir.replace(SDPATH, ""));
if ( !ADscDir.exists())
{
String AParentDirName = ADscDir.getParent();
File AParentDir = new File(AParentDirName);
if (!AParentDir.exists())
{
DoCreateDir(AParentDirName );
}
try
{
ADscDir.mkdir();
}
catch(Exception er){
String Error = er.getMessage();
String AE = Error;
}
}
}
//返回文件目录名称
public static String getFilePath( String AFileName)
{
String ARes = "";
try{
int AEndPos = AFileName.lastIndexOf("/");
if ( AEndPos>0)
{
ARes = AFileName.substring(0, AEndPos );
}
}
catch(Exception er){;}
return ARes;
}
//写文件
public static Boolean DoWriteTextFile( String AFileName, String AText)
{
Boolean ARes = false;
try
{
String APathStr= getFilePath( AFileName);
File APath = new File(SDPATH+ APathStr);
if (!APath.exists())
{
DoCreateDir(APathStr);
}
if ( APath.exists())
{
try{
String AFullFileName = SDPATH+ AFileName;
File AFile = new File( AFullFileName);
AFile.createNewFile();
FileOutputStream fout = new FileOutputStream(AFullFileName );
byte [] bytes = AText.getBytes();
fout.write(bytes);
fout.close();
ARes = true;
}
catch(Exception e){
String Error = e.getMessage();
String AE = Error;
}
}
}
catch(Exception er){;}
return ARes;
}
//读文件
public static String DoReadTextFile( String AFileName )
{
String ARes = "";
try
{
String AFullFileName=SDPATH+ AFileName;
File AFile = new File( AFullFileName);
if (AFile.exists())
{
try {
FileInputStream fis=new FileInputStream(AFile);//新建一个FileInputStream对象
try {
byte[] b=new byte[fis.available()];//新建一个字节数组
fis.read(b);//将文件中的内容读取到字节数组中
fis.close();
String str2=new String(b);//再将字节数组中的内容转化成字符串情势输出
ARes = str2;
} catch (IOException e) {;}
}
catch(Exception er) {;}
}
}
catch(Exception er){;}
return ARes;
}
//从URL下载文本
public static String getUrlText( String AUrl )
{
String ARes = "";
try
{
URL url=new URL(AUrl);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
//取得inputStream,并进行读取
InputStream input=conn.getInputStream();
BufferedReader in=new BufferedReader(new InputStreamReader(input));
String line=null;
StringBuffer sb=new StringBuffer();
while((line=in.readLine())!=null){
sb.append(line);
}
ARes = sb.toString();
}
catch(Exception er){;}
return ARes;
}
//下载URL到文件
public static Boolean DoDownload(String AUrl,String AFileName)
{
Boolean ARes = false;
try
{
String ATxt = getUrlText(AUrl);
ARes = DoWriteTextFile(AFileName, ATxt);
}
catch(Exception er){;}
return ARes;
}
public static InputStream StringTOInputStream(String in) {
ByteArrayInputStream is=null;
try
{
is = new ByteArrayInputStream(in.getBytes("UTF-8"));
}
catch(Exception er){;}
return is;
}
/**
* 删除一个文件
*
* @param file
* @return
*/
public static boolean DoDelFile(File file) {
if (file.isDirectory())
return false;
else
return file.delete();
}
/**
* 删除一个文件
*
* @param file
* @return
*/
public static boolean DoDelFile(String AFileName) {
boolean ARes = false;
try
{
File Af = new File( SDPATH+ AFileName);
if ( Af.isFile())
{
if ( Af.exists())
{
ARes = Af.delete();
}
}
}
catch(Exception er){
;
}
return ARes;
}
public static String InputStreamTOString(InputStream in ) {
String Ares ="";
try
{
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
int BUFFER_SIZE = 4096;
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;
Ares = new String(outStream.toByteArray(),"UTF-8");
}
catch(Exception er){;}
return Ares;
}
}