国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

[Java]讀取文件方法大全

2019-11-14 15:41:55
字體:
來源:轉載
供稿:網友

轉載處 http://m.survivalescaperooms.com/lovebread/archive/2009/11/23/1609122.html

 

1、按字節(jié)讀取文件內容

2、按字符讀取文件內容

3、按行讀取文件內容

4、隨機讀取文件內容

public class ReadFromFile {    /**     * 以字節(jié)為單位讀取文件,常用于讀二進制文件,如圖片、聲音、影像等文件。     */    public static void readFileByBytes(String fileName) {        File file = new File(fileName);        InputStream in = null;        try {            System.out.);            // 一次讀一個字節(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é)為單位讀取文件內容,一次讀多個字節(jié):");            // 一次讀多個字節(jié)            byte[] tempbytes = new byte[100];            int byteread = 0;            in = new FileInputStream(fileName);            ReadFromFile.showAvailableBytes(in);            // 讀入多個字節(jié)到字節(jié)數組中,byteread為一次讀入的字節(jié)數            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) {                }            }        }    }    /**     * 以字符為單位讀取文件,常用于讀文本,數字等類型的文件     */    public static void readFileByChars(String fileName) {        File file = new File(fileName);        Reader reader = null;        try {            System.out.println("以字符為單位讀取文件內容,一次讀一個字節(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("以字符為單位讀取文件內容,一次讀多個字節(jié):");            // 一次讀多個字符            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) {                }            }        }    }    /**     * 以行為單位讀取文件,常用于讀面向行的格式化文件     */    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) {                }            }        }    }    /**     * 隨機讀取文件內容     */    public static void readFileByRandomaccess(String fileName) {        RandomAccessFile randomFile = null;        try {            System.out.println("隨機讀取一段文件內容:");            // 打開一個隨機訪問文件流,按只讀方式            randomFile = new RandomAccessFile(fileName, "r");            // 文件長度,字節(jié)數            long fileLength = randomFile.length();            // 讀文件的起始位置            int beginIndex = (fileLength > 4) ? 4 : 0;            // 將讀文件的開始位置移到beginIndex位置。            randomFile.seek(beginIndex);            byte[] bytes = new byte[10];            int byteread = 0;            // 一次讀10個字節(jié),如果文件內容不足10個字節(jié),則讀剩下的字節(jié)。            // 將一次讀取的字節(jié)數賦給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é)數     */    private static void showAvailableBytes(InputStream in) {        try {            System.out.println("當前字節(jié)輸入流中的字節(jié)數為:" + in.available());        } catch (IOException e) {            e.printStackTrace();        }    }    public static void main(String[] args) {        String fileName = "C:/temp/newTemp.txt";        ReadFromFile.readFileByBytes(fileName);        ReadFromFile.readFileByChars(fileName);        ReadFromFile.readFileByLines(fileName);        ReadFromFile.readFileByRandomAccess(fileName);    }}

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 陇川县| 通山县| 丽江市| 芜湖县| 柳林县| 张掖市| 鄂州市| 斗六市| 凤城市| 宁都县| 遂溪县| 嘉鱼县| 长沙市| 内乡县| 潜江市| 定州市| 安多县| 江口县| 酉阳| 富蕴县| 扎囊县| 阿拉善右旗| 新丰县| 抚顺县| 饶河县| 南康市| 望江县| 西盟| 芷江| 黄龙县| 治多县| 师宗县| 大埔县| 诏安县| 光泽县| 名山县| 沙田区| 宁安市| 恩平市| 石城县| 西乌珠穆沁旗|