java模拟记事本

简介: java模拟记事本

个人推荐:

📢📢📢 前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下 "通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 点击跳转到教程

在这里插入图片描述

一:程序框架图

在这里插入图片描述

二:代码详情

package notepad;
import java.awt.im.spi.InputMethod;
import java.io.FileNotFoundException;
import java.io.FilePermission;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
/*
 * 模拟记事本
 */
public class Notepad {
           //文件路径
           private static String  fillPath;
           //文件内容
           private static String message="";
           
           public static void main(String[] args) throws IOException {
               Scanner  scanner=new Scanner(System.in);
               while(true){
                   System.out.println("--1:新建文件 2:文件打开 3:修改文件 4:保存 5:退出--");
                   System.out.println("请输入指令");
                   int command=scanner.nextInt();
                   switch (command) {
                case 1:
                    //创建文件
                    createFile();
                    break;
                case 2:
                    //打开文件
                    openFile();
                    break;
                case 3:
                    //修改文件
                    editFile();
                    break;
                case 4:
                    //保存文件
                    saveFile();
                    break;
                case 5:
                    //退出
                    exit();
                    break;
                default:
                    System.out.println("你输入的指令错误!");
                    break;
                }
               }
           }
       /*
        * 退出文件
        */
        private static void exit() {
            // TODO Auto-generated method stub
            System.out.println("你已经退出系统,谢谢使用!");
            System.exit(0);
        }
        /*
         * 保存文件
         */
        private static void saveFile() throws IOException {
            // TODO Auto-generated method stub
            Scanner  scanner=new Scanner(System.in);
            FileWriter  out=null;
            if (fillPath!=null) {
                out=new FileWriter(fillPath);
            }else{
                System.out.println("请输入文件保存的绝对路径:");
                String path=scanner.next();
                fillPath=path;
                if (!fillPath.toLowerCase().endsWith(".txt")) {
                    fillPath+=".txt";
                }
                out=new FileWriter(fillPath);
            }
            out.write(message);
            out.close();
            message="";
            fillPath=null;
        }
        /*
         * 修改文本内容
         */
        private static void editFile() {
            // TODO Auto-generated method stub
            if (message.isEmpty()&&fillPath==null) {
                System.out.println("请先新建文件或者打开文件");
                return;
            }
            Scanner scanner=new Scanner(System.in);
            String str="请输入要修改的内容以(修改的目标文字:修改之后的文字)格式 ,停止修改请输入\\stop\\:";
            System.out.println(str);
            String intputMessage="";
            while(!intputMessage.equals("stop")){
                intputMessage=scanner.nextLine();
                if (intputMessage!=null&&intputMessage.length()>0) {
                    String []editMessage=intputMessage.split(":");
                    if (editMessage!=null&&editMessage.length>1) {
                        message=message.replace(editMessage[0], editMessage[1]);
                    }
                    
                }
            }
            System.out.println("修改后的内容:"+"\r\n"+message);
        }
        /*
         * 打开文件
         */
        private static void openFile() throws IOException {
            // TODO Auto-generated method stub
            message="";
            Scanner scanner=new Scanner(System.in);
            System.out.println("请输入打开文件的位置:");
            fillPath=scanner.next();
            if (fillPath!=null&&!fillPath.endsWith(".txt")) {
                System.out.println("请选择文本文件");
                return;
            }
            FileReader in=new FileReader(fillPath);
            char[]charArray=new char[1024];
            int len=0;
            StringBuffer stringBuffer=new StringBuffer();
            while((len=in.read(charArray))!=-1){
                stringBuffer.append(charArray);
            }
            message=stringBuffer.toString();
            System.out.println("打开文件内容:"+"\r\n"+message);
            in.close();
        }
        /*
         * 创建文件
         */
        private static void createFile() {
            // TODO Auto-generated method stub
            message="";
            Scanner scanner=new Scanner(System.in);
            System.out.println("请输入内容,停止编写请输入\"stop\":");
            StringBuffer stringBuffer=new StringBuffer();
            String inputMessage="";
            //当输入stop时,停止输入
            while (!(inputMessage.equals("stop"))) {
                if (stringBuffer.length()>0) {
                    //追加换行符
                    stringBuffer.append("\r\n");
                }
                //拼接输入信息
                stringBuffer.append(inputMessage);
                //获取输入信息
                inputMessage=scanner.nextLine();
            }
            //将输入内容停止
            message=stringBuffer.toString();
        }

}

三:运行效果

在这里插入图片描述
在这里插入图片描述

四:总结

这节课是实战练习,对前面学习的FileWriter流和FileReader流进行练习,FileWriter和FileReader分别继承于Writer和Reader类
其实IO流的操作基本上形式一样
如流的读取
实例化读取对象----->通过reader()方法进行读取--->关闭对象,释放对象
如流的写入
实例化写入对象----->通过writer()方法进行写入---->关闭对象,释放对象
模拟记事本主要在保存文件(FileWriter)模块和打开文件模块(FileReader)使用到Io流,其他模块只是通过字符串相应的操作,来实现相应业务(除退出模块)。

相关文章
|
Java
Java记事本编写HelloWorld程序
Java记事本编写HelloWorld程序
318 0
|
Java
JDK环境下利用记事本对java文件进行运行编译
JDK环境下利用记事本对java文件进行运行编译
302 0
java实现记事本
java实现记事本
151 0
基于Java Swing实现的日历记事本系统【源码+报告文档】
基于Java Swing实现的日历记事本系统【源码+报告文档】
326 0
|
网络协议 NoSQL Java
模拟面试一(Java)
模拟面试一(Java)
340 1
模拟面试一(Java)
|
存储 Java 索引
不可上位!数据结构队列,老实排队,Java实现数组模拟队列及可复用环形队列
不可上位!数据结构队列,老实排队,Java实现数组模拟队列及可复用环形队列
不可上位!数据结构队列,老实排队,Java实现数组模拟队列及可复用环形队列
|
存储 Java 程序员
Java 模拟二级文件系统 中
本系列将记述使用 Java 实现一个简单的二级文件系统的过程。本项目意图效仿 Linux 的文件管理,但是学的又没那么像,仅仅是一些皮毛。因此使用类似 Inode 的东西记录文件在磁盘上的信息。
341 1
|
存储 Java 人机交互
Java 模拟二级文件系统 上
本系列将记述使用 Java 实现一个简单的二级文件系统的过程。
316 1
|
存储 设计模式 Java
【Java作业】模拟停车场(超详细!)
【Java作业】模拟停车场(超详细!)
【Java作业】模拟停车场(超详细!)
|
Java Scala 开发者
Java 模拟 Scala 的运行机制|学习笔记
快速学习 Java 模拟 Scala 的运行机制。
231 0
Java 模拟 Scala 的运行机制|学习笔记