本篇內(nèi)容主要講解“Java如何利用IO流實(shí)現(xiàn)簡(jiǎn)易的記事本功能”,感興趣的朋友不妨來看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Java如何利用IO流實(shí)現(xiàn)簡(jiǎn)易的記事本功能”吧!
專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!成都創(chuàng)新互聯(lián)公司為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計(jì)制作,服務(wù)好的網(wǎng)站設(shè)計(jì)公司,網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)負(fù)責(zé)任的成都網(wǎng)站制作公司!
要求:編寫一個(gè)模擬日記本的程序,通過在控制臺(tái)輸入指令,實(shí)現(xiàn)在本地新建文件,打開日記本和修改日記本等功能。
指令1代表“新建日記本”,可以從控制臺(tái)獲取用戶輸入的日記內(nèi)容
指令2代表“打開日記本”,讀取指定路徑的TXT文件的內(nèi)容并輸出到控制臺(tái)
指令3代表“修改日記本”,修改日記本中原有的內(nèi)容
指令4代表保存
指令5代表退出
import java.io.*; import java.util.Scanner; public class IO_日記本 { /** * 模擬日記本程序 */ private static String filePath; private static String message = ""; public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); while (true) { System.out.println("---------日記本---------"); System.out.println("1.寫日記"); System.out.println("2.查看日記"); System.out.println("3.修改日記"); System.out.println("4.保存"); System.out.println("5.退出"); System.out.println("注意:每次輸入內(nèi)容后記得保存!"); System.out.print("請(qǐng)輸入操作指令:"); int command = sc.nextInt(); switch (command) { case 1: // 1:新建文件(寫日記) createFile(); break; case 2: // 2:打開文件(查看日記) openFile(); break; case 3: // 3:修改文件 editFile(); break; case 4: // 4:保存 saveFile(); break; case 5: // 5:退出 System.out.println("謝謝使用本系統(tǒng),歡迎下次再來!"); System.exit(0); break; default: System.out.println("您輸入的指令錯(cuò)誤!"); break; } } } //寫一個(gè)方法寫入文件內(nèi)容 private static void createFile() { message = "";//新建文件時(shí),暫存文件內(nèi)容清空 Scanner sc = new Scanner(System.in); System.out.println("請(qǐng)輸入內(nèi)容,停止編寫請(qǐng)輸入:stop"); StringBuffer stb = new StringBuffer();//用于后期輸入內(nèi)容的拼接 String inputMessage = ""; while (!inputMessage.equals("stop")) {//輸入stop則停止 if (stb.length() > 0) { stb.append("\r\n");//追加換行符 } stb.append(inputMessage);//拼接輸入信息 inputMessage = sc.nextLine();//獲取輸入信息 } message = stb.toString();//將輸入內(nèi)容緩存 } //寫一個(gè)方法保存文件 private static void saveFile() throws Exception { FileWriter out = new FileWriter("文件路徑", true); out.write(message + "\r\n");//將輸入內(nèi)容寫入 message = ""; out.close(); } //寫一個(gè)方法打開文件 public static void openFile() throws Exception { Reader r = new FileReader("文件路徑"); BufferedReader br = new BufferedReader(r); // char[] c = new char[1024];//定義一個(gè)桶裝每次讀取多少個(gè)數(shù)據(jù) // int len; // while ((len = br.read(c)) != -1) {//讀取所有內(nèi)容,如果讀完所有內(nèi)容則停止 // String str = new String(c, 0, len);//每次讀取0到len的所有內(nèi)容 // System.out.print(str);//因?yàn)樽x取時(shí)會(huì)自動(dòng)換行所以這里我們不需要換行 // } String line; while ((line = br.readLine()) != null) {//一次讀取一行 System.out.println(line);//因?yàn)樽x取一行時(shí)程序不會(huì)自己換行,所以這里我們需要給它換行 } //System.out.println();//讀完換行 } //寫一個(gè)方法修改文件 /** * 替換 * @throws IOException */ public static void editFile() throws IOException{ Scanner sc = new Scanner(System.in); //原有的內(nèi)容 System.out.println("原文件內(nèi)容:"); String str1 =sc.next();; //要替換的內(nèi)容 System.out.println("修改成:"); String str2 =sc.next(); // 讀取 File file = new File("文件路徑"); FileReader in = new FileReader(file); BufferedReader buf = new BufferedReader(in);//緩沖流 // 內(nèi)存流, 作為臨時(shí)流 CharArrayWriter tempStream = new CharArrayWriter(); // 替換 String line = null; while ( (line = buf.readLine()) != null) { // 替換每行中, 符合條件的字符串 line = line.replaceAll(str1, str2);//正則表達(dá)式 // 將該行寫入內(nèi)存 tempStream.write(line+"\r\n"); } // 關(guān)閉輸入流 buf.close(); // 將內(nèi)存中的流寫入文件 FileWriter fw = new FileWriter(file); tempStream.writeTo(fw); fw.close(); } }
到此,相信大家對(duì)“Java如何利用IO流實(shí)現(xiàn)簡(jiǎn)易的記事本功能”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!