<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 閱讀(169) 評論(0)  編輯  收藏


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


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

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲人成片在线观看| 狠狠色香婷婷久久亚洲精品| 日本视频免费高清一本18| 免费在线不卡视频| 国产精品99精品久久免费| 亚洲黄色网址在线观看| 欧美日韩国产免费一区二区三区| 中文字幕视频在线免费观看 | 亚洲AV综合色区无码另类小说| 国产精品免费精品自在线观看| 青青青视频免费观看| 亚洲综合色丁香麻豆| 亚洲真人日本在线| 免费无码A片一区二三区| 国产在线观看xxxx免费| 亚洲人av高清无码| 亚洲精品在线观看视频| 亚洲国产小视频精品久久久三级| 亚洲第一网站免费视频| 成人片黄网站色大片免费观看cn | 亚洲第一中文字幕| 亚洲av再在线观看| 99久久精品日本一区二区免费 | 日韩电影免费观看| 午夜免费国产体验区免费的| 国产成人精品日本亚洲网址| 亚洲成AV人片在线观看无码| 免费**毛片在线播放直播| 91精品国产免费久久久久久青草| 中国极品美軳免费观看| 西西人体大胆免费视频| 日本亚洲色大成网站www久久| 久久亚洲AV午夜福利精品一区| 亚洲乱码中文字幕手机在线 | 国产成人精品免费直播| 成年免费大片黄在线观看岛国| 国产婷婷成人久久Av免费高清 | 亚洲视频免费在线看| 久久国产亚洲电影天堂| 在线亚洲精品福利网址导航| 免费国产a国产片高清网站|