<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    Java讀取文件方法

      1、按字節讀取文件內容
    /**
    * 以字節為單位讀取文件,常用于讀二進制文件,如圖片、聲音、影像等文件。
    */
    public static void readFileByBytes(String fileName) {
    File file = new File(fileName);
    InputStream in = null;
    try {
    System.out.println("以字節為單位讀取文件內容,一次讀一個字節:");
    // 一次讀一個字節
    in = new FileInputStream(file);
    int tempbyte;
    while ((tempbyte = in.read()) != -1) {
    System.out.write(tempbyte);
    }
    in.close();
    } catch (IOException e) {
    e.printStackTrace();
    return;
    }
    try {
    System.out.println("以字節為單位讀取文件內容,一次讀多個字節:");
    // 一次讀多個字節
    byte[] tempbytes = new byte[100];
    int byteread = 0;
    in = new FileInputStream(fileName);
    // 讀入多個字節到字節數組中,byteread為一次讀入的字節數
    while ((byteread = in.read(tempbytes)) != -1) {
    System.out.write(tempbytes, 0, byteread);
    }
    } catch (Exception e1) {
    e1.printStackTrace();
    } finally {
    if (in != null) {
    try {
    in.close();
    } catch (IOException e1) {
    }
    }
    }
    }


    2、按字符讀取文件內容
    /**
    * 以字符為單位讀取文件,常用于讀文本,數字等類型的文件
    */
    public static void readFileByChars(String fileName) {
    File file = new File(fileName);
    Reader reader = null;
    try {
    System.out.println("以字符為單位讀取文件內容,一次讀一個字節:");
    // 一次讀一個字符
    reader = new InputStreamReader(new FileInputStream(file));
    int tempchar;
    while ((tempchar = reader.read()) != -1) {
    // 對于windows下,\r\n這兩個字符在一起時,表示一個換行。
    // 但如果這兩個字符分開顯示時,會換兩次行。
    // 因此,屏蔽掉\r,或者屏蔽\n。否則,將會多出很多空行。
    if (((char) tempchar) != '\r') {
    System.out.print((char) tempchar);
    }
    }
    reader.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    try {
    System.out.println("以字符為單位讀取文件內容,一次讀多個字節:");
    // 一次讀多個字符
    char[] tempchars = new char[30];
    int charread = 0;
    reader = new InputStreamReader(new FileInputStream(fileName));
    // 讀入多個字符到字符數組中,charread為一次讀取字符數
    while ((charread = reader.read(tempchars)) != -1) {
    // 同樣屏蔽掉\r不顯示
    if ((charread == tempchars.length)
    && (tempchars[tempchars.length - 1] != '\r')) {
    System.out.print(tempchars);
    } else {
    for (int i = 0; i < charread; i++) {
    if (tempchars[i] == '\r') {
    continue;
    } else {
    System.out.print(tempchars[i]);
    }
    }
    }
    }
    } catch (Exception e1) {
    e1.printStackTrace();
    } finally {
    if (reader != null) {
    try {
    reader.close();
    } catch (IOException e1) {
    }
    }
    }
    }2、按字符讀取文件內容
    /**
    * 以字符為單位讀取文件,常用于讀文本,數字等類型的文件
    */
    public static void readFileByChars(String fileName) {
    File file = new File(fileName);
    Reader reader = null;
    try {
    System.out.println("以字符為單位讀取文件內容,一次讀一個字節:");
    // 一次讀一個字符
    reader = new InputStreamReader(new FileInputStream(file));
    int tempchar;
    while ((tempchar = reader.read()) != -1) {
    // 對于windows下,\r\n這兩個字符在一起時,表示一個換行。
    // 但如果這兩個字符分開顯示時,會換兩次行。
    // 因此,屏蔽掉\r,或者屏蔽\n。否則,將會多出很多空行。
    if (((char) tempchar) != '\r') {
    System.out.print((char) tempchar);
    }
    }
    reader.close();
    } catch (Exception e) {
    e.printStackTrace();
    }
    try {
    System.out.println("以字符為單位讀取文件內容,一次讀多個字節:");
    // 一次讀多個字符
    char[] tempchars = new char[30];
    int charread = 0;
    reader = new InputStreamReader(new FileInputStream(fileName));
    // 讀入多個字符到字符數組中,charread為一次讀取字符數
    while ((charread = reader.read(tempchars)) != -1) {
    // 同樣屏蔽掉\r不顯示
    if ((charread == tempchars.length)
    && (tempchars[tempchars.length - 1] != '\r')) {
    System.out.print(tempchars);
    } else {
    for (int i = 0; i < charread; i++) {
    if (tempchars[i] == '\r') {
    continue;
    } else {
    System.out.print(tempchars[i]);
    }
    }
    }
    }
    } catch (Exception e1) {
    e1.printStackTrace();
    } finally {
    if (reader != null) {
    try {
    reader.close();
    } catch (IOException e1) {
    }
    }
    }
    }


    3、按行讀取文件內容
    /**
    * 以行為單位讀取文件,常用于讀面向行的格式化文件
    */
    public static void readFileByLines(String fileName) {
    File file = new File(fileName);
    BufferedReader reader = null;
    try {
    System.out.println("以行為單位讀取文件內容,一次讀一整行:");
    reader = new BufferedReader(new FileReader(file));
    String tempString = null;
    int line = 1;
    // 一次讀入一行,直到讀入null為文件結束
    while ((tempString = reader.readLine()) != null) {
    // 顯示行號
    System.out.println("line " + line + ": " + tempString);
    line++;
    }
    reader.close();
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    if (reader != null) {
    try {
    reader.close();
    } catch (IOException e1) {
    }
    }
    }
    }
      4、隨機讀取文件內容
    /**
    * 隨機讀取文件內容
    */
    public static void readFileByRandomAccess(String fileName) {
    RandomAccessFile randomFile = null;
    try {
    System.out.println("隨機讀取一段文件內容:");
    // 打開一個隨機訪問文件流,按只讀方式
    randomFile = new RandomAccessFile(fileName, "r");
    // 文件長度,字節數
    long fileLength = randomFile.length();
    // 讀文件的起始位置
    int beginIndex = (fileLength > 4) ? 4 : 0;
    // 將讀文件的開始位置移到beginIndex位置。
    randomFile.seek(beginIndex);
    byte[] bytes = new byte[10];
    int byteread = 0;
    // 一次讀10個字節,如果文件內容不足10個字節,則讀剩下的字節。
    // 將一次讀取的字節數賦給byteread
    while ((byteread = randomFile.read(bytes)) != -1) {
    System.out.write(bytes, 0, byteread);
    }
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    if (randomFile != null) {
    try {
    randomFile.close();
    } catch (IOException e1) {
    }
    }
    }
    }
      5、將內容追加到文件尾部
    public class AppendToFile {
    /**
    * A方法追加文件:使用RandomAccessFile
    */
    public static void appendMethodA(String fileName, String content) {
    try {
    // 打開一個隨機訪問文件流,按讀寫方式
    RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
    // 文件長度,字節數
    long fileLength = randomFile.length();
    //將寫文件指針移到文件尾。
    randomFile.seek(fileLength);
    randomFile.writeBytes(content);
    randomFile.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    /**
    * B方法追加文件:使用FileWriter
    */
    public static void appendMethodB(String fileName, String content) {
    try {
    //打開一個寫文件器,構造函數中的第二個參數true表示以追加形式寫文件
    FileWriter writer = new FileWriter(fileName, true);
    writer.write(content);
    writer.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    public static void main(String[] args) {
    String fileName = "C:/temp/newTemp.txt";
    String content = "new append!";
    //按方法A追加文件
    AppendToFile.appendMethodA(fileName, content);
    AppendToFile.appendMethodA(fileName, "append end. \n");
    //顯示文件內容
    ReadFromFile.readFileByLines(fileName);
    //按方法B追加文件
    AppendToFile.appendMethodB(fileName, content);
    AppendToFile.appendMethodB(fileName, "append end. \n");
    //顯示文件內容
    ReadFromFile.readFileByLines(fileName);
    }
    }

    posted on 2013-11-13 10:16 順其自然EVO 閱讀(170) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2013年11月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 日日夜夜精品免费视频| 又黄又爽无遮挡免费视频| 久久免费看黄a级毛片| 亚洲线精品一区二区三区影音先锋| 在线毛片片免费观看| 亚洲一级毛片中文字幕| 日韩精品亚洲专区在线观看| 老汉精品免费AV在线播放| 亚洲人成欧美中文字幕| 亚洲精品无码国产| 特级淫片国产免费高清视频| 成人性生交大片免费看中文| 中文字幕 亚洲 有码 在线| 国外亚洲成AV人片在线观看| 在线视频观看免费视频18| 国产日韩在线视频免费播放| 亚洲中文无码卡通动漫野外| 亚洲综合国产一区二区三区| 毛片免费观看网站| 无码人妻精品中文字幕免费 | 四虎国产精品免费久久| 一级毛片视频免费观看| 亚洲 日韩 色 图网站| 亚洲AV永久无码精品水牛影视| 久久99精品视免费看| 免费VA在线观看无码| 亚洲中文字幕日本无线码| 无码欧精品亚洲日韩一区| 日韩免费一区二区三区在线播放| 久久国产福利免费| 国产精品亚洲专区一区| 亚洲一级毛片免费观看| 亚洲国产精品一区二区久久| 亚洲精品乱码久久久久久蜜桃| 成人免费午夜视频| 免费AA片少妇人AA片直播 | 国产a级特黄的片子视频免费| 毛片免费全部播放无码| 中文字幕久精品免费视频| japanese色国产在线看免费| 国产精品亚洲AV三区|