zoukankan      html  css  js  c++  java
  • android读写文件的方法

    01.package otheri.common;  
    02. 
    03.import java.io.File;  
    04.import java.io.FileInputStream;  
    05.import java.io.FileOutputStream;  
    06.import java.io.IOException;  
    07.import java.io.InputStream;  
    08.import java.io.OutputStream;  
    09. 
    10.import otheri.io.Input;  
    11.import otheri.io.Output;  
    12.import android.content.Context;  
    13.import android.os.Environment;  
    14. 
    15.public class FileHelper {  
    16.    private Context context;  
    17.    private String SDPATH;  
    18.    private String FILESPATH;  
    19. 
    20.    public FileHelper(Context context) {  
    21.        this.context = context;  
    22.        SDPATH = Environment.getExternalStorageDirectory().getPath() + "\\";  
    23.        FILESPATH = this.context.getFilesDir().getPath() + "\\";  
    24.    }  
    25. 
    26.    /** 
    27.     * 在SD卡上创建文件 
    28.     *  
    29.     * @throws IOException 
    30.     */ 
    31.    public File creatSDFile(String fileName) throws IOException {  
    32.        File file = new File(SDPATH + fileName);  
    33.        file.createNewFile();  
    34.        return file;  
    35.    }  
    36. 
    37.    /** 
    38.     * 删除SD卡上的文件 
    39.     *  
    40.     * @param fileName 
    41.     */ 
    42.    public boolean delSDFile(String fileName) {  
    43.        File file = new File(SDPATH + fileName);  
    44.        if (file == null || !file.exists() || file.isDirectory())  
    45.            return false;  
    46.        file.delete();  
    47.        return true;  
    48.    }  
    49. 
    50.    /** 
    51.     * 在SD卡上创建目录 
    52.     *  
    53.     * @param dirName 
    54.     */ 
    55.    public File creatSDDir(String dirName) {  
    56.        File dir = new File(SDPATH + dirName);  
    57.        dir.mkdir();  
    58.        return dir;  
    59.    }  
    60. 
    61.    /** 
    62.     * 删除SD卡上的目录 
    63.     *  
    64.     * @param dirName 
    65.     */ 
    66.    public boolean delSDDir(String dirName) {  
    67.        File dir = new File(SDPATH + dirName);  
    68.        return delDir(dir);  
    69.    }  
    70. 
    71.    /** 
    72.     * 修改SD卡上的文件或目录名 
    73.     *  
    74.     * @param fileName 
    75.     */ 
    76.    public boolean renameSDFile(String oldfileName, String newFileName) {  
    77.        File oleFile = new File(SDPATH + oldfileName);  
    78.        File newFile = new File(SDPATH + newFileName);  
    79.        return oleFile.renameTo(newFile);  
    80.    }  
    81. 
    82.    /** 
    83.     * 拷贝SD卡上的单个文件 
    84.     *  
    85.     * @param path 
    86.     * @throws IOException 
    87.     */ 
    88.    public boolean copySDFileTo(String srcFileName, String destFileName)  
    89.            throws IOException {  
    90.        File srcFile = new File(SDPATH + srcFileName);  
    91.        File destFile = new File(SDPATH + destFileName);  
    92.        return copyFileTo(srcFile, destFile);  
    93.    }  
    94. 
    95.    /** 
    96.     * 拷贝SD卡上指定目录的所有文件 
    97.     *  
    98.     * @param srcDirName 
    99.     * @param destDirName 
    100.     * @return 
    101.     * @throws IOException 
    102.     */ 
    103.    public boolean copySDFilesTo(String srcDirName, String destDirName)  
    104.            throws IOException {  
    105.        File srcDir = new File(SDPATH + srcDirName);  
    106.        File destDir = new File(SDPATH + destDirName);  
    107.        return copyFilesTo(srcDir, destDir);  
    108.    }  
    109. 
    110.    /** 
    111.     * 移动SD卡上的单个文件 
    112.     *  
    113.     * @param srcFileName 
    114.     * @param destFileName 
    115.     * @return 
    116.     * @throws IOException 
    117.     */ 
    118.    public boolean moveSDFileTo(String srcFileName, String destFileName)  
    119.            throws IOException {  
    120.        File srcFile = new File(SDPATH + srcFileName);  
    121.        File destFile = new File(SDPATH + destFileName);  
    122.        return moveFileTo(srcFile, destFile);  
    123.    }  
    124. 
    125.    /** 
    126.     * 移动SD卡上的指定目录的所有文件 
    127.     *  
    128.     * @param srcDirName 
    129.     * @param destDirName 
    130.     * @return 
    131.     * @throws IOException 
    132.     */ 
    133.    public boolean moveSDFilesTo(String srcDirName, String destDirName)  
    134.            throws IOException {  
    135.        File srcDir = new File(SDPATH + srcDirName);  
    136.        File destDir = new File(SDPATH + destDirName);  
    137.        return moveFilesTo(srcDir, destDir);  
    138.    }  
    139. 
    140. 
    141.    /* 
    142.     * 将文件写入sd卡。如:writeSDFile("test.txt"); 
    143.     */ 
    144.    public Output writeSDFile(String fileName) throws IOException {  
    145.        File file = new File(SDPATH + fileName);  
    146.        FileOutputStream fos = new FileOutputStream(file);  
    147.        return new Output(fos);  
    148.    }  
    149. 
    150.    /* 
    151.     * 在原有文件上继续写文件。如:appendSDFile("test.txt"); 
    152.     */ 
    153.    public Output appendSDFile(String fileName) throws IOException {  
    154.        File file = new File(SDPATH + fileName);  
    155.        FileOutputStream fos = new FileOutputStream(file, true);  
    156.        return new Output(fos);  
    157.    }  
    158. 
    159.    /* 
    160.     * 从SD卡读取文件。如:readSDFile("test.txt"); 
    161.     */ 
    162.    public Input readSDFile(String fileName) throws IOException {  
    163.        File file = new File(SDPATH + fileName);  
    164.        FileInputStream fis = new FileInputStream(file);  
    165.        return new Input(fis);  
    166.    }  
    167.      
    168.      
    169.    /** 
    170.     * 建立私有文件 
    171.     *  
    172.     * @param fileName 
    173.     * @return 
    174.     * @throws IOException 
    175.     */ 
    176.    public File creatDataFile(String fileName) throws IOException {  
    177.        File file = new File(FILESPATH + fileName);  
    178.        file.createNewFile();  
    179.        return file;  
    180.    }  
    181. 
    182.    /** 
    183.     * 建立私有目录 
    184.     *  
    185.     * @param dirName 
    186.     * @return 
    187.     */ 
    188.    public File creatDataDir(String dirName) {  
    189.        File dir = new File(FILESPATH + dirName);  
    190.        dir.mkdir();  
    191.        return dir;  
    192.    }  
    193. 
    194.    /** 
    195.     * 删除私有文件 
    196.     *  
    197.     * @param fileName 
    198.     * @return 
    199.     */ 
    200.    public boolean delDataFile(String fileName) {  
    201.        File file = new File(FILESPATH + fileName);  
    202.        return delFile(file);  
    203.    }  
    204. 
    205.    /** 
    206.     * 删除私有目录 
    207.     *  
    208.     * @param dirName 
    209.     * @return 
    210.     */ 
    211.    public boolean delDataDir(String dirName) {  
    212.        File file = new File(FILESPATH + dirName);  
    213.        return delDir(file);  
    214.    }  
    215. 
    216.    /** 
    217.     * 更改私有文件名 
    218.     *  
    219.     * @param oldName 
    220.     * @param newName 
    221.     * @return 
    222.     */ 
    223.    public boolean renameDataFile(String oldName, String newName) {  
    224.        File oldFile = new File(FILESPATH + oldName);  
    225.        File newFile = new File(FILESPATH + newName);  
    226.        return oldFile.renameTo(newFile);  
    227.    }  
    228. 
    229.    /** 
    230.     * 在私有目录下进行文件复制 
    231.     *  
    232.     * @param srcFileName 
    233.     *            : 包含路径及文件名 
    234.     * @param destFileName 
    235.     * @return 
    236.     * @throws IOException 
    237.     */ 
    238.    public boolean copyDataFileTo(String srcFileName, String destFileName)  
    239.            throws IOException {  
    240.        File srcFile = new File(FILESPATH + srcFileName);  
    241.        File destFile = new File(FILESPATH + destFileName);  
    242.        return copyFileTo(srcFile, destFile);  
    243.    }  
    244. 
    245.    /** 
    246.     * 复制私有目录里指定目录的所有文件 
    247.     *  
    248.     * @param srcDirName 
    249.     * @param destDirName 
    250.     * @return 
    251.     * @throws IOException 
    252.     */ 
    253.    public boolean copyDataFilesTo(String srcDirName, String destDirName)  
    254.            throws IOException {  
    255.        File srcDir = new File(FILESPATH + srcDirName);  
    256.        File destDir = new File(FILESPATH + destDirName);  
    257.        return copyFilesTo(srcDir, destDir);  
    258.    }  
    259. 
    260.    /** 
    261.     * 移动私有目录下的单个文件 
    262.     *  
    263.     * @param srcFileName 
    264.     * @param destFileName 
    265.     * @return 
    266.     * @throws IOException 
    267.     */ 
    268.    public boolean moveDataFileTo(String srcFileName, String destFileName)  
    269.            throws IOException {  
    270.        File srcFile = new File(FILESPATH + srcFileName);  
    271.        File destFile = new File(FILESPATH + destFileName);  
    272.        return moveFileTo(srcFile, destFile);  
    273.    }  
    274. 
    275.    /** 
    276.     * 移动私有目录下的指定目录下的所有文件 
    277.     *  
    278.     * @param srcDirName 
    279.     * @param destDirName 
    280.     * @return 
    281.     * @throws IOException 
    282.     */ 
    283.    public boolean moveDataFilesTo(String srcDirName, String destDirName)  
    284.            throws IOException {  
    285.        File srcDir = new File(FILESPATH + srcDirName);  
    286.        File destDir = new File(FILESPATH + destDirName);  
    287.        return moveFilesTo(srcDir, destDir);  
    288.    }  
    289. 
    290.    /* 
    291.     * 将文件写入应用私有的files目录。如:writeFile("test.txt"); 
    292.     */ 
    293.    public Output wirteFile(String fileName) throws IOException {  
    294.        OutputStream os = context.openFileOutput(fileName,  
    295.                Context.MODE_WORLD_WRITEABLE);  
    296.        return new Output(os);  
    297.    }  
    298. 
    299.    /* 
    300.     * 在原有文件上继续写文件。如:appendFile("test.txt"); 
    301.     */ 
    302.    public Output appendFile(String fileName) throws IOException {  
    303.        OutputStream os = context.openFileOutput(fileName, Context.MODE_APPEND);  
    304.        return new Output(os);  
    305.    }  
    306. 
    307.    /* 
    308.     * 从应用的私有目录files读取文件。如:readFile("test.txt"); 
    309.     */ 
    310.    public Input readFile(String fileName) throws IOException {  
    311.        InputStream is = context.openFileInput(fileName);  
    312.        return new Input(is);  
    313.    }  
    314.      
    315.      
    316.      
    317.    /**********************************************************************************************************/ 
    318.    /*********************************************************************************************************/ 
    319.     */  
    320.    /** 
    321.     * 删除一个文件 
    322.     *  
    323.     * @param file 
    324.     * @return 
    325.     */ 
    326.    public boolean delFile(File file) {  
    327.        if (file.isDirectory())  
    328.            return false;  
    329.        return file.delete();  
    330.    }  
    331. 
    332.    /** 
    333.     * 删除一个目录(可以是非空目录) 
    334.     *  
    335.     * @param dir 
    336.     */ 
    337.    public boolean delDir(File dir) {  
    338.        if (dir == null || !dir.exists() || dir.isFile()) {  
    339.            return false;  
    340.        }  
    341.        for (File file : dir.listFiles()) {  
    342.            if (file.isFile()) {  
    343.                file.delete();  
    344.            } else if (file.isDirectory()) {  
    345.                delDir(file);// 递归  
    346.            }  
    347.        }  
    348.        dir.delete();  
    349.        return true;  
    350.    }  
    351. 
    352.    /** 
    353.     * 拷贝一个文件,srcFile源文件,destFile目标文件 
    354.     *  
    355.     * @param path 
    356.     * @throws IOException 
    357.     */ 
    358.    public boolean copyFileTo(File srcFile, File destFile) throws IOException {  
    359.        if (srcFile.isDirectory() || destFile.isDirectory())  
    360.            return false;// 判断是否是文件  
    361.        FileInputStream fis = new FileInputStream(srcFile);  
    362.        FileOutputStream fos = new FileOutputStream(destFile);  
    363.        int readLen = 0;  
    364.        byte[] buf = new byte[1024];  
    365.        while ((readLen = fis.read(buf)) != -1) {  
    366.            fos.write(buf, 0, readLen);  
    367.        }  
    368.        fos.flush();  
    369.        fos.close();  
    370.        fis.close();  
    371.        return true;  
    372.    }  
    373. 
    374.    /** 
    375.     * 拷贝目录下的所有文件到指定目录 
    376.     *  
    377.     * @param srcDir 
    378.     * @param destDir 
    379.     * @return 
    380.     * @throws IOException 
    381.     */ 
    382.    public boolean copyFilesTo(File srcDir, File destDir) throws IOException {  
    383.        if (!srcDir.isDirectory() || !destDir.isDirectory())  
    384.            return false;// 判断是否是目录  
    385.        if (!destDir.exists())  
    386.            return false;// 判断目标目录是否存在  
    387.        File[] srcFiles = srcDir.listFiles();  
    388.        for (int i = 0; i < srcFiles.length; i++) {  
    389.            if (srcFiles[i].isFile()) {  
    390.                // 获得目标文件  
    391.                File destFile = new File(destDir.getPath() + "\\" 
    392.                        + srcFiles[i].getName());  
    393.                copyFileTo(srcFiles[i], destFile);  
    394.            } else if (srcFiles[i].isDirectory()) {  
    395.                File theDestDir = new File(destDir.getPath() + "\\" 
    396.                        + srcFiles[i].getName());  
    397.                copyFilesTo(srcFiles[i], theDestDir);  
    398.            }  
    399.        }  
    400.        return true;  
    401.    }  
    402. 
    403.    /** 
    404.     * 移动一个文件 
    405.     *  
    406.     * @param srcFile 
    407.     * @param destFile 
    408.     * @return 
    409.     * @throws IOException 
    410.     */ 
    411.    public boolean moveFileTo(File srcFile, File destFile) throws IOException {  
    412.        boolean iscopy = copyFileTo(srcFile, destFile);  
    413.        if (!iscopy)  
    414.            return false;  
    415.        delFile(srcFile);  
    416.        return true;  
    417.    }  
    418. 
    419.    /** 
    420.     * 移动目录下的所有文件到指定目录 
    421.     *  
    422.     * @param srcDir 
    423.     * @param destDir 
    424.     * @return 
    425.     * @throws IOException 
    426.     */ 
    427.    public boolean moveFilesTo(File srcDir, File destDir) throws IOException {  
    428.        if (!srcDir.isDirectory() || !destDir.isDirectory()) {  
    429.            return false;  
    430.        }  
    431.        File[] srcDirFiles = srcDir.listFiles();  
    432.        for (int i = 0; i < srcDirFiles.length; i++) {  
    433.            if (srcDirFiles[i].isFile()) {  
    434.                File oneDestFile = new File(destDir.getPath() + "\\" 
    435.                        + srcDirFiles[i].getName());  
    436.                moveFileTo(srcDirFiles[i], oneDestFile);  
    437.                delFile(srcDirFiles[i]);  
    438.            } else if (srcDirFiles[i].isDirectory()) {  
    439.                File oneDestFile = new File(destDir.getPath() + "\\" 
    440.                        + srcDirFiles[i].getName());  
    441.                moveFilesTo(srcDirFiles[i], oneDestFile);  
    442.                delDir(srcDirFiles[i]);  
    443.            }  
    444. 
    445.        }  
    446.        return true;  
    447.    }  
    448.} 

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/fenghome/archive/2010/06/13/5668598.aspx

  • 相关阅读:
    三十四:布局之混合布局、圣杯布局、双飞翼布局
    三十三:布局之经典的列布局
    三十二:布局之经典的行布局
    三十一:CSS之CSS定位之position
    三十:CSS之用浮动实现网页的导航和布局
    二十九:CSS之浮动float
    二十八:CSS之列表list-type
    二十七:CSS之背景background
    二十六:CSS之盒子模型之小案例
    二十五:CSS之盒子模型之display属性
  • 原文地址:https://www.cnblogs.com/xiaoxiaoboke/p/2087863.html
Copyright © 2011-2022 走看看