温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java怎么利用IO流实现简易的记事本功能

发布时间:2022-05-26 14:13:42 来源:亿速云 阅读:310 作者:iii 栏目:开发技术

这篇文章主要介绍“Java怎么利用IO流实现简易的记事本功能”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java怎么利用IO流实现简易的记事本功能”文章能帮助大家解决问题。

要求:编写一个模拟日记本的程序,通过在控制台输入指令,实现在本地新建文件,打开日记本和修改日记本等功能。

指令1代表“新建日记本”,可以从控制台获取用户输入的日记内容

指令2代表“打开日记本”,读取指定路径的TXT文件的内容并输出到控制台

指令3代表“修改日记本”,修改日记本中原有的内容

指令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("注意:每次输入内容后记得保存!");             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("谢谢使用本系统,欢迎下次再来!");                     System.exit(0);                     break;                 default:                     System.out.println("您输入的指令错误!");                     break;             }         }     }       //写一个方法写入文件内容     private static void createFile() {         message = "";//新建文件时,暂存文件内容清空         Scanner sc = new Scanner(System.in);         System.out.println("请输入内容,停止编写请输入:stop");         StringBuffer stb = new StringBuffer();//用于后期输入内容的拼接         String inputMessage = "";         while (!inputMessage.equals("stop")) {//输入stop则停止             if (stb.length() > 0) {                 stb.append("\r\n");//追加换行符             }             stb.append(inputMessage);//拼接输入信息             inputMessage = sc.nextLine();//获取输入信息         }         message = stb.toString();//将输入内容缓存     }       //写一个方法保存文件     private static void saveFile() throws Exception {         FileWriter out = new FileWriter("文件路径", true);         out.write(message + "\r\n");//将输入内容写入         message = "";         out.close();     }       //写一个方法打开文件     public static void openFile() throws Exception {         Reader r = new FileReader("文件路径");         BufferedReader br = new BufferedReader(r); //        char[] c = new char[1024];//定义一个桶装每次读取多少个数据 //        int len; //        while ((len = br.read(c)) != -1) {//读取所有内容,如果读完所有内容则停止 //            String str = new String(c, 0, len);//每次读取0到len的所有内容 //            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);         //原有的内容         System.out.println("原文件内容:");         String str1 =sc.next();;         //要替换的内容         System.out.println("修改成:");         String str2 =sc.next();         // 读取         File file = new File("文件路径");         FileReader in = new FileReader(file);         BufferedReader buf = new BufferedReader(in);//缓冲流         // 内存流, 作为临时流         CharArrayWriter tempStream = new CharArrayWriter();         // 替换         String line = null;         while ( (line = buf.readLine()) != null) {             // 替换每行中, 符合条件的字符串             line = line.replaceAll(str1, str2);//正则表达式             // 将该行写入内存             tempStream.write(line+"\r\n");         }         // 关闭输入流         buf.close();         // 将内存中的流写入文件         FileWriter fw = new FileWriter(file);         tempStream.writeTo(fw);         fw.close();     } }

关于“Java怎么利用IO流实现简易的记事本功能”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI