最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java利用IO流實現(xiàn)簡易的記事本功能

 更新時間:2022年05月26日 10:40:07   作者:遇安.112  
本文將利用Java中IO流編寫一個模擬日記本的程序,通過在控制臺輸入指令,實現(xiàn)在本地新建文件,打開日記本和修改日記本等功能,感興趣的可以了解一下

要求:編寫一個模擬日記本的程序,通過在控制臺輸入指令,實現(xiàn)在本地新建文件,打開日記本和修改日記本等功能。

指令1代表“新建日記本”,可以從控制臺獲取用戶輸入的日記內(nèi)容

指令2代表“打開日記本”,讀取指定路徑的TXT文件的內(nè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("請輸入操作指令:");
            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("您輸入的指令錯誤!");
                    break;
            }
        }
    }
 
    //寫一個方法寫入文件內(nèi)容
    private static void createFile() {
        message = "";//新建文件時,暫存文件內(nèi)容清空
        Scanner sc = new Scanner(System.in);
        System.out.println("請輸入內(nèi)容,停止編寫請輸入: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)容緩存
    }
 
    //寫一個方法保存文件
    private static void saveFile() throws Exception {
        FileWriter out = new FileWriter("文件路徑", true);
        out.write(message + "\r\n");//將輸入內(nèi)容寫入
        message = "";
        out.close();
    }
 
    //寫一個方法打開文件
    public static void openFile() throws Exception {
        Reader r = new FileReader("文件路徑");
        BufferedReader br = new BufferedReader(r);
//        char[] c = new char[1024];//定義一個桶裝每次讀取多少個數(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);//因為讀取時會自動換行所以這里我們不需要換行
//        }
        String line;
        while ((line = br.readLine()) != null) {//一次讀取一行
            System.out.println(line);//因為讀取一行時程序不會自己換行,所以這里我們需要給它換行
        }
        //System.out.println();//讀完換行
    }
 
    //寫一個方法修改文件
    /**
     * 替換
     * @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)存流, 作為臨時流
        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();
    }
}

到此這篇關(guān)于Java利用IO流實現(xiàn)簡易的記事本功能的文章就介紹到這了,更多相關(guān)Java記事本內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java獲取電腦真實IP地址的示例代碼

    Java獲取電腦真實IP地址的示例代碼

    這篇文章主要介紹了Java如何獲取電腦真實IP地址,忽略虛擬機(jī)等IP地址的干擾,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-09-09
  • 關(guān)于mybatis遇到Integer類型的參數(shù)時動態(tài)sql需要注意條件

    關(guān)于mybatis遇到Integer類型的參數(shù)時動態(tài)sql需要注意條件

    這篇文章主要介紹了關(guān)于mybatis遇到Integer類型的參數(shù)時動態(tài)sql需要注意條件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 使用Arthas定位問題及分析

    使用Arthas定位問題及分析

    本文通過使用Arthas工具對一個bug進(jìn)行分析,發(fā)現(xiàn)該bug的原因是不同類型的動態(tài)代理(JDK和CGlib)實現(xiàn)機(jī)制的不同導(dǎo)致的
    2025-01-01
  • JAVA匿名內(nèi)部類語法分析及實例詳解

    JAVA匿名內(nèi)部類語法分析及實例詳解

    這篇文章主要介紹了JAVA匿名內(nèi)部類語法分析及實例詳解,匿名內(nèi)部類可以使你的代碼更加簡潔,它與局部類很相似,不同的是它沒有類名,如果某個局部類你只需要用一次,那么你就可以使用匿名內(nèi)部類。對此感興趣的可以了解一下
    2020-07-07
  • java基于servlet實現(xiàn)文件上傳功能

    java基于servlet實現(xiàn)文件上傳功能

    這篇文章主要為大家詳細(xì)介紹了java基于servlet實現(xiàn)文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Spring boot配置多數(shù)據(jù)源代碼實例

    Spring boot配置多數(shù)據(jù)源代碼實例

    這篇文章主要介紹了Spring boot配置多數(shù)據(jù)源代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Spring @Transaction 注解執(zhí)行事務(wù)的流程

    Spring @Transaction 注解執(zhí)行事務(wù)的流程

    這篇文章主要介紹了Spring @Transaction 注解執(zhí)行事務(wù)的流程,Spring 是如何開啟事務(wù)的?又是如何進(jìn)行提交事務(wù)和關(guān)閉事務(wù)的,本文給大家詳細(xì)介紹,需要的朋友可以參考下
    2021-06-06
  • java 使用JDBC構(gòu)建簡單的數(shù)據(jù)訪問層實例詳解

    java 使用JDBC構(gòu)建簡單的數(shù)據(jù)訪問層實例詳解

    以下是如何使用JDBC構(gòu)建一個數(shù)據(jù)訪問層,包括數(shù)據(jù)轉(zhuǎn)換(將從數(shù)據(jù)庫中查詢的數(shù)據(jù)封裝到對應(yīng)的對象中……),數(shù)據(jù)庫的建立,以及如何連接到數(shù)據(jù)庫,需要的朋友可以參考下
    2016-11-11
  • 簡單了解Java中多態(tài)的基礎(chǔ)知識

    簡單了解Java中多態(tài)的基礎(chǔ)知識

    這篇文章主要介紹了簡單了解Java中的多態(tài),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • 使用Springboot+Vue實現(xiàn)文件上傳和下載功能

    使用Springboot+Vue實現(xiàn)文件上傳和下載功能

    本文介紹了如何使用Springboot結(jié)合Vue進(jìn)行圖書信息管理系統(tǒng)開發(fā),包括數(shù)據(jù)庫表的創(chuàng)建,實體類、Dao層、Service層和Controller層的編寫,重點講解了文件上傳和下載功能的實現(xiàn),感興趣的朋友跟隨小編一起看看吧
    2024-09-09

最新評論

高碑店市| 玛多县| 绥阳县| 屯昌县| 灵台县| 师宗县| 察隅县| 定日县| 大理市| 英超| 平邑县| 南澳县| 广平县| 红桥区| 尼木县| 克拉玛依市| 阳东县| 加查县| 苏尼特左旗| 泸溪县| 靖州| 定安县| 临泽县| 和硕县| 克什克腾旗| 江源县| 柞水县| 黄大仙区| 建始县| 桦南县| 汪清县| 涿州市| 炎陵县| 普兰县| 哈尔滨市| 武汉市| 屏山县| 康保县| 高邮市| 望城县| 武功县|