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

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

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

    ゞ沉默是金ゞ

    魚離不開水,但是沒有說不離開哪滴水.
    posts - 98,comments - 104,trackbacks - 0
    讀取文件實例
    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é)為單位讀取文件,常用于讀二進制文件,如圖片、聲音、影像等文件。
         
    */

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

                }

            }

        }


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

        
    public static void readFileByRandomAccess(String fileName) {
            RandomAccessFile randomFile 
    = null;
            
    try {
                System.out.println(
    "隨機讀取一段文件內(nèi)容:");
                
    // 打開一個隨機訪問文件流,按只讀方式
                randomFile = new RandomAccessFile(fileName, "r");
                
    // 文件長度,字節(jié)數(shù)
                long fileLength = randomFile.length();
                
    // 讀文件的起始位置
                int beginIndex = (fileLength > 4? 4 : 0;
                
    // 將讀文件的開始位置移到beginIndex位置。
                randomFile.seek(beginIndex);
                
    byte[] bytes = new byte[10];
                
    int byteread = 0;
                
    // 一次讀10個字節(jié),如果文件內(nèi)容不足10個字節(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(
    "當前字節(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 ゞ沉默是金ゞ 閱讀(796) 評論(0)  編輯  收藏 所屬分類: Java SE
    主站蜘蛛池模板: 国产午夜无码精品免费看| 亚洲欧洲日产国码在线观看| 在线观看亚洲免费| 女人被免费视频网站| 可以免费看的卡一卡二| 国产曰批免费视频播放免费s| 亚洲视频免费一区| 国产四虎免费精品视频| 18禁成年无码免费网站无遮挡| 91精品免费在线观看| 国产人成免费视频网站| 免费AA片少妇人AA片直播 | 亚洲第一香蕉视频| 中文字幕亚洲综合精品一区| 亚洲精品国产电影午夜| 亚洲1区1区3区4区产品乱码芒果 | 亚洲人成人77777网站| 亚洲国产精品久久久天堂| 久久亚洲国产精品一区二区| 亚洲网址在线观看你懂的| 亚洲一区二区三区亚瑟| 亚洲精品亚洲人成在线| 乱人伦中文视频在线观看免费| 国产黄在线观看免费观看不卡| a级黄色毛片免费播放视频| 久久国产高潮流白浆免费观看| 99久久国产热无码精品免费 | 国产午夜无码精品免费看动漫| 57pao国产成视频免费播放| 老司机在线免费视频| 免费国产a国产片高清网站| 中文字幕日韩亚洲| 亚洲色图黄色小说| 亚洲AV成人一区二区三区观看| 日韩大片在线永久免费观看网站| 中文精品人人永久免费| 亚洲高清免费在线观看| 国产麻豆免费观看91| 国产亚洲美女精品久久久久狼| 亚洲日本国产精华液| 边摸边脱吃奶边高潮视频免费|