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

首頁(yè) > 編程 > Java > 正文

Java 讀取文件方法大全

2019-11-26 15:21:59
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

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

public class ReadFromFile {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) {}}}}

2、按字符讀取文件內(nèi)容

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) {}}}}

3、按行讀取文件內(nèi)容

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) {}}}}

4、隨機(jī)讀取文件內(nèi)容

public static void readFileByRandomAccess(String fileName) {RandomAccessFile randomFile = null;try {System.out.println("隨機(jī)讀取一段文件內(nèi)容:");// 打開(kāi)一個(gè)隨機(jī)訪(fǎng)問(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ù)賦給bytereadwhile ((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) {}}}}private static void showAvailableBytes(InputStream in) {try {System.out.println("當(dāng)前字節(jié)輸入流中的字節(jié)數(shù)為:" + 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);}}

5、將內(nèi)容追加到文件尾部

public class AppendToFile {public static void appendMethodA(String fileName, String content) {try {// 打開(kāi)一個(gè)隨機(jī)訪(fǎng)問(wèn)文件流,按讀寫(xiě)方式RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");// 文件長(zhǎng)度,字節(jié)數(shù)long fileLength = randomFile.length();//將寫(xiě)文件指針移到文件尾。randomFile.seek(fileLength);randomFile.writeBytes(content);randomFile.close();} catch (IOException e) {e.printStackTrace();}}public static void appendMethodB(String fileName, String content) {try {//打開(kāi)一個(gè)寫(xiě)文件器,構(gòu)造函數(shù)中的第二個(gè)參數(shù)true表示以追加形式寫(xiě)文件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");//顯示文件內(nèi)容ReadFromFile.readFileByLines(fileName);//按方法B追加文件AppendToFile.appendMethodB(fileName, content);AppendToFile.appendMethodB(fileName, "append end. /n");//顯示文件內(nèi)容ReadFromFile.readFileByLines(fileName);}}
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 准格尔旗| 鄂伦春自治旗| 黄梅县| 大田县| 八宿县| 内江市| 仙桃市| 宁夏| 密云县| 龙江县| 延安市| 崇义县| 昌平区| 曲松县| 隆昌县| 县级市| 同江市| 桂东县| 丰县| 深州市| 深圳市| 平湖市| 达日县| 广州市| 炉霍县| 靖江市| 苍梧县| 乌鲁木齐县| 华坪县| 天长市| 河津市| 昌宁县| 麻城市| 子洲县| 镇沅| 舟曲县| 兖州市| 新晃| 禹城市| 喀喇| 万安县|