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

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

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

    ゞ沉默是金ゞ

    魚(yú)離不開(kāi)水,但是沒(méi)有說(shuō)不離開(kāi)哪滴水.
    posts - 98,comments - 104,trackbacks - 0
    讀取文件實(shí)例
    package org.duke.java.util;

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileReader;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.RandomAccessFile;
    import java.io.Reader;

    public class ReadFromFile {
        
    /**
         * 以字節(jié)為單位讀取文件,常用于讀二進(jìn)制文件,如圖片、聲音、影像等文件。
         
    */

        
    public static void readFileByBytes(String fileName) {
            File file 
    = new File(fileName);
            InputStream in 
    = null;
            
    try {
                System.out.println(
    "以字節(jié)為單位讀取文件內(nèi)容,一次讀一個(gè)字節(jié):");
                
    // 一次讀一個(gè)字節(jié)
                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(
    "以字節(jié)為單位讀取文件內(nèi)容,一次讀多個(gè)字節(jié):");
                
    // 一次讀多個(gè)字節(jié)
                byte[] tempbytes = new byte[100];
                
    int byteread = 0;
                in 
    = new FileInputStream(fileName);
                ReadFromFile.showAvailableBytes(in);
                
    // 讀入多個(gè)字節(jié)到字節(jié)數(shù)組中,byteread為一次讀入的字節(jié)數(shù)
                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) {
                    }

                }

            }

        }


        
    /**
         * 以字符為單位讀取文件,常用于讀文本,數(shù)字等類型的文件
         
    */

        
    public static void readFileByChars(String fileName) {
            File file 
    = new File(fileName);
            Reader reader 
    = null;
            
    try {
                System.out.println(
    "以字符為單位讀取文件內(nèi)容,一次讀一個(gè)字節(jié):");
                
    // 一次讀一個(gè)字符
                reader = new InputStreamReader(new FileInputStream(file));
                
    int tempchar;
                
    while ((tempchar = reader.read()) != -1{
                    
    // 對(duì)于windows下,\r\n這兩個(gè)字符在一起時(shí),表示一個(gè)換行。
                    
    // 但如果這兩個(gè)字符分開(kāi)顯示時(shí),會(huì)換兩次行。
                    
    // 因此,屏蔽掉\r,或者屏蔽\n。否則,將會(huì)多出很多空行。
                    if (((char) tempchar) != '\r'{
                        System.out.print((
    char) tempchar);
                    }

                }

                reader.close();
            }
     catch (Exception e) {
                e.printStackTrace();
            }

            
    try {
                System.out.println(
    "以字符為單位讀取文件內(nèi)容,一次讀多個(gè)字節(jié):");
                
    // 一次讀多個(gè)字符
                char[] tempchars = new char[30];
                
    int charread = 0;
                reader 
    = new InputStreamReader(new FileInputStream(fileName));
                
    // 讀入多個(gè)字符到字符數(shù)組中,charread為一次讀取字符數(shù)
                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) {
                    }

                }

            }

        }


        
    /**
         * 以行為單位讀取文件,常用于讀面向行的格式化文件
         
    */

        
    public static void readFileByLines(String fileName) {
            File file 
    = new File(fileName);
            BufferedReader reader 
    = null;
            
    try {
                System.out.println(
    "以行為單位讀取文件內(nèi)容,一次讀一整行:");
                reader 
    = new BufferedReader(new FileReader(file));
                String tempString 
    = null;
                
    int line = 1;
                
    // 一次讀入一行,直到讀入null為文件結(jié)束
                while ((tempString = reader.readLine()) != null{
                    
    // 顯示行號(hào)
                    System.out.println("line " + line + "" + tempString);
                    line
    ++;
                }

                reader.close();
            }
     catch (IOException e) {
                e.printStackTrace();
            }
     finally {
                
    if (reader != null{
                    
    try {
                        reader.close();
                    }
     catch (IOException e1) {
                    }

                }

            }

        }


        
    /**
         * 隨機(jī)讀取文件內(nèi)容
         
    */

        
    public static void readFileByRandomAccess(String fileName) {
            RandomAccessFile randomFile 
    = null;
            
    try {
                System.out.println(
    "隨機(jī)讀取一段文件內(nèi)容:");
                
    // 打開(kāi)一個(gè)隨機(jī)訪問(wèn)文件流,按只讀方式
                randomFile = new RandomAccessFile(fileName, "r");
                
    // 文件長(zhǎng)度,字節(jié)數(shù)
                long fileLength = randomFile.length();
                
    // 讀文件的起始位置
                int beginIndex = (fileLength > 4? 4 : 0;
                
    // 將讀文件的開(kāi)始位置移到beginIndex位置。
                randomFile.seek(beginIndex);
                
    byte[] bytes = new byte[10];
                
    int byteread = 0;
                
    // 一次讀10個(gè)字節(jié),如果文件內(nèi)容不足10個(gè)字節(jié),則讀剩下的字節(jié)。
                
    // 將一次讀取的字節(jié)數(shù)賦給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) {
                    }

                }

            }

        }


        
    /**
         * 顯示輸入流中還剩的字節(jié)數(shù)
         
    */

        
    private static void showAvailableBytes(InputStream in) {
            
    try {
                System.out.println(
    "當(dāng)前字節(jié)輸入流中的字節(jié)數(shù)為:" + in.available());
            }
     catch (IOException e) {
                e.printStackTrace();
            }

        }


        
    public static vo id main(String[] args) {
            String fileName 
    = "C:/Shawn/test.txt";
            ReadFromFile.readFileByBytes(fileName);
            ReadFromFile.readFileByChars(fileName);
            ReadFromFile.readFileByLines(fileName);
            ReadFromFile.readFileByRandomAccess(fileName);
        }

    }

    posted on 2012-07-03 19:07 ゞ沉默是金ゞ 閱讀(797) 評(píng)論(0)  編輯  收藏 所屬分類: Java SE
    主站蜘蛛池模板: 午夜dj免费在线观看| 国产亚洲精品国产| 亚洲国产精品xo在线观看| 一区二区三区在线观看免费| 日韩免费精品视频| 亚洲AV无码一区二区三区DV | 巨波霸乳在线永久免费视频| 亚洲麻豆精品国偷自产在线91| 亚洲黄色激情视频| 99精品热线在线观看免费视频| 亚洲无码精品浪潮| 亚洲AV色无码乱码在线观看 | 67pao强力打造67194在线午夜亚洲| 色爽黄1000部免费软件下载| 在线观看免费高清视频| 久久久久亚洲精品无码蜜桃| 中国极品美軳免费观看| 亚洲国产成人精品久久久国产成人一区二区三区综| 亚洲一区二区三区免费观看| 一个人免费日韩不卡视频| 亚洲欧洲成人精品香蕉网| 一级中文字幕免费乱码专区| 国产美女做a免费视频软件| 久久久久亚洲国产| 亚洲国产精品免费观看| 亚洲美女激情视频| 午夜理伦剧场免费| 亚洲国产精品福利片在线观看| 国产免费内射又粗又爽密桃视频 | 高h视频在线免费观看| 欧洲精品免费一区二区三区| 亚洲一欧洲中文字幕在线| 亚洲精品视频免费在线观看| 老汉色老汉首页a亚洲| 久久国产免费一区| 亚洲s色大片在线观看| 久久免费精彩视频| 水蜜桃亚洲一二三四在线| 久久青草免费91线频观看不卡| 亚洲AV永久无码区成人网站| 国产免费网站看v片在线|