Java基础编写记事本

学习了Java的一些基础知识,编写一个功能超级简单记事本。

首先一个大的框架要建立起来,比如说Windows的记事本,有新建文件,打开文件,修改文件,保存等等功能,话不多说,直接上代码。

    private static String filePath;
    private static String message = "";
    public static void main(String[] args) throws Exception {
    
    
        Scanner scanner = new Scanner(System.in);
        System.out.println("1:新建文件 2:打开文件 3:修改文件 4:保存 5:退出");
        //create,open,modify,save,exit
        while(true) {
    
    
            System.out.println("请输入指令:");
            int command = scanner.nextInt();
            switch (command) {
    
    
                case 1:
                    createFile();
                    break;
                case 2:
                    openFile();
                    break;
                case 3:
                    modifyFile();
                    break;
                case 4:
                    saveFile();
                    break;
                case 5:
                    exit();
                    break;
                default:
                    System.out.println("您输入的指令错误!(1-5)");
                    break;
            }
        }
    }

具体的一些要点我也不知怎么描述才能够通俗易懂。反正学了后就是知道该这么写才行,我也没有在网络上搜别人是怎么写的,这种应该是最简单的吧。
接下来又有几个小框架,我就不多说什么了,这个全部代码运行后操作很简单,看了应该就能直接上手。
新建文件

private static void createFile() {
    
    
        message = "";
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入内容,停止时输入\"stop\":");
        StringBuffer sBuffer = new StringBuffer();
        String inputMessage = "";
        while (!inputMessage.equals("stop")) {
    
    
            if (sBuffer.length()>0) {
    
    
                sBuffer.append("\r\n");
            }
            sBuffer.append(inputMessage);
            inputMessage = scanner.nextLine();
        }
        message = sBuffer.toString();
    }

打开文件

private static void openFile() throws Exception {
    
    
        message = "";
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入打开文件的位置:");
        filePath = scanner.next();
        if (filePath != null && !filePath.endsWith(".txt")) {
    
    
            System.out.println("请选择文本文件!");
            return;
        }
        FileReader in = new FileReader(filePath);
        char[]charArray = new char[1024];
        int len = 0;
        StringBuffer sb = new StringBuffer();
        while((len = in.read(charArray)) != -1) {
    
    
            sb.append(charArray);
        }
        message = sb.toString();
        System.out.println("打开文件内容:"+"\r\n" + message);
        in.close();
    }

修改文件

private static void modifyFile() {
    
    
        if (message == "" && filePath ==null) {
    
    
            System.out.println("请先新建文件或者打开文件");
            return;
        }
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要修改的内容(以\"修改的目标文字:修改之后的文字\")," + "停止修改请输入\"stop\":");
        String inputMessage = "";
        while(!inputMessage.equals("stop")) {
    
    
            inputMessage = scanner.nextLine();
            if (inputMessage != null && inputMessage.length() > 0) {
    
    
                String[] modifyMessage = inputMessage.split(":");
                if (modifyMessage != null && modifyMessage.length > 1) {
    
    
                    message = message.replace(modifyMessage[0], modifyMessage[1]);
                }
            }
        }
        System.out.println("修改后的内容:" + "\r\n" + message);
    }

保存文件

private static void saveFile() throws IOException {
    
    
        Scanner scanner = new Scanner(System.in);
        FileWriter out = null;
        if (filePath != null) {
    
    
            out = new FileWriter(filePath);
        }else {
    
    
            System.out.println("请输入文件保存的绝对路径:");
            String path = scanner.next();
            filePath = path;
            if (!filePath.toLowerCase().endsWith(".txt")) {
    
    
                filePath += ".txt";
            }
            out = new FileWriter(filePath);
        }
        out.write(message);
        out.close();
        message = "";
        filePath = null;
    }

退出

private static void exit() {
    
    
        System.out.println("您已退出系统,谢谢使用!");
        System.exit(0);
    }

代码中运用的一些方法肯定是需要导入包的,接下来是完整的代码。

import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Notepad {
    
    


    private static String filePath;
    private static String message = "";
    public static void main(String[] args) throws Exception {
    
    
        Scanner scanner = new Scanner(System.in);
        System.out.println("1:新建文件 2:打开文件 3:修改文件 4:保存 5:退出");
        while(true) {
    
    
            System.out.println("请输入指令:");
            int command = scanner.nextInt();
            switch (command) {
    
    
                case 1:
                    createFile();
                    break;
                case 2:
                    openFile();
                    break;
                case 3:
                    modifyFile();
                    break;
                case 4:
                    saveFile();
                    break;
                case 5:
                    exit();
                    break;
                default:
                    System.out.println("您输入的指令错误!(1-5)");
                    break;
            }
        }
    }

    private static void createFile() {
    
    
        message = "";
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入内容,停止时输入\"stop\":");
        StringBuffer sBuffer = new StringBuffer();
        String inputMessage = "";
        while (!inputMessage.equals("stop")) {
    
    
            if (sBuffer.length()>0) {
    
    
                sBuffer.append("\r\n");
            }
            sBuffer.append(inputMessage);
            inputMessage = scanner.nextLine();
        }
        message = sBuffer.toString();
    }

    private static void openFile() throws Exception {
    
    
        message = "";
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入打开文件的位置:");
        filePath = scanner.next();
        if (filePath != null && !filePath.endsWith(".txt")) {
    
    
            System.out.println("请选择文本文件!");
            return;
        }
        FileReader in = new FileReader(filePath);
        char[]charArray = new char[1024];
        int len = 0;
        StringBuffer sb = new StringBuffer();
        while((len = in.read(charArray)) != -1) {
    
    
            sb.append(charArray);
        }
        message = sb.toString();
        System.out.println("打开文件内容:"+"\r\n" + message);
        in.close();
    }

    private static void modifyFile() {
    
    
        if (message == "" && filePath ==null) {
    
    
            System.out.println("请先新建文件或者打开文件");
            return;
        }
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入要修改的内容(以\"修改的目标文字:修改之后的文字\")," + "停止修改请输入\"stop\":");
        String inputMessage = "";
        while(!inputMessage.equals("stop")) {
    
    
            inputMessage = scanner.nextLine();
            if (inputMessage != null && inputMessage.length() > 0) {
    
    
                String[] modifyMessage = inputMessage.split(":");
                if (modifyMessage != null && modifyMessage.length > 1) {
    
    
                    message = message.replace(modifyMessage[0], modifyMessage[1]);
                }
            }
        }
        System.out.println("修改后的内容:" + "\r\n" + message);
    }

    private static void saveFile() throws IOException {
    
    
        Scanner scanner = new Scanner(System.in);
        FileWriter out = null;
        if (filePath != null) {
    
    
            out = new FileWriter(filePath);
        }else {
    
    
            System.out.println("请输入文件保存的绝对路径:");
            String path = scanner.next();
            filePath = path;
            if (!filePath.toLowerCase().endsWith(".txt")) {
    
    
                filePath += ".txt";
            }
            out = new FileWriter(filePath);
        }
        out.write(message);
        out.close();
        message = "";
        filePath = null;
    }
    private static void exit() {
    
    
        System.out.println("您已退出系统,谢谢使用!");
        System.exit(0);
    }

}

运行后在控制台看到的是这样,那我也来简单操作一番。
在这里插入图片描述
先新建一个。
在这里插入图片描述
输入内容后回车输入stop结束。
在这里插入图片描述
然后保存试试看。
在这里插入图片描述
出现这个报错是因为我D盘里面没有java这个文件夹,找不到指定目录,它保存直接只能是txt文件。
所以我在D盘新建了一个java文件夹后运行就没有报错。

在这里插入图片描述
然后去D盘找找看。在这里插入图片描述
再来试下打开功能。
在这里插入图片描述
这里就不能输入D:\java\one了,打开文件当然需要文件后缀。

代码到这就结束了,看了觉得有帮助不忘点个赞哦。

猜你喜欢

转载自blog.csdn.net/m0_53692627/article/details/120090810