package in;import java.io.FileNotFoundException;
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 sin=new Scanner(System.in);System.out.println("--1:新建文件 2:打开文件 3:修改文件 4:保存 5:退出--");while(true){System.out.print("请输入操作指令:");int a=sin.nextInt();switch(a){case 1:createFile();break;case 2:openFile();break;case 3:editFile();break;case 4:saveFile();break;case 5:exit();break;default:System.out.print("您输入的指令有误!");}}}private static void exit() {System.out.print("您已退出系统,谢谢使用!");System.exit(0);}private static void saveFile() throws Exception {Scanner sc=new Scanner(System.in);FileWriter out=null;if(filePath!=null){out=new FileWriter(filePath);//将源文件覆盖}else{System.out.println("请输入文件保存的结对路径:");String path=sc.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 editFile() {if(message==""&&filePath==null){System.out.println("请先新建文件或者打开文件");return;}Scanner sc=new Scanner(System.in);System.out.println("请输入要修改的内容(以“修改的目标文字:修改之后的文字”)为格式,输入“stop“停止");String inputMessage="";while(!inputMessage .equals("stop")){inputMessage=sc.nextLine();if(inputMessage!=null&&inputMessage.length()>0){String[] editMessage=inputMessage.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 Exception {message="";Scanner sc=new Scanner(System.in);System.out.println("请输入打开文件的位置:");filePath=sc.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 createFile() {message ="";//新建文件是,缓存文件清空Scanner sc=new Scanner(System.in);System.out.print("请输入内容,停止编写请输入“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();}}

java模拟记事本的一些功能相关推荐

  1. JAVA模拟win7记事本

     使用JAVA模拟记事本 学校老师叫用java swing写一个记事本,虽然java窗体不是java的强项,但还是可以作为练习熟悉一下的. 因为记事本这种单一的小东西,所以不需要什么耦合不需要太低,虽 ...

  2. [14-2] JAVA文件操作实训之模拟记事本Notepad

    本文部分内容引用<JAVA基础案例教程>-黑马程序员 第14次-文件操作之字节流和字符流实训-task02文件操作实训之模拟记事本-贪吃的钊钊黑. 指导老师:范畅 一.任务描述 编写一个模 ...

  3. 解析java实现模拟USB接口的功能

    解析java实现模拟USB接口的功能 1 题目 模拟USB接口的功能 我们在使用计算机的时候经常会用到USB接口,鼠标.键盘等都是带USB接口的设备,我们只需要将鼠标.键盘插入到计算机的USB接口中就 ...

  4. Java写记事本:文本超出范围时实现滚动条功能

    问题背景 本次Java课程的作业是做一个记事本,能够实现记事本的基本功能,如图所示 问题描述 想要实现内容超出文本框范围时,自动添加垂直滚动条和横向自适应. 添加了JScrollPane scroll ...

  5. Java网络编程,模拟QQ群聊功能

    Java网络编程,模拟QQ群聊功能 一.网络编程知识点简介: 1.C/S架构:Client客户端/Server服务器: 涉及到的应用:桌面的应用软件,QQ,王者荣耀 涉及到的技术:Socket网络编程 ...

  6. java 日历记事本_calendar 一个用java编写的日历记事本. 具有正常日历功能;也可以用于在不同日期记录下当日重要的事情 - 下载 - 搜珍网...

    日历记事本/日历记事本/build/classes/日历记事本/CalendarPad$1.class 日历记事本/日历记事本/build/classes/日历记事本/CalendarPad.clas ...

  7. java提升权限运行_提升代码的运行权限,实现模拟管理员身份的功能

    SPSecurity.RunWithElevatedPrivileges(delegate() { // implementation details omitted }); 可以提升代码的运行权限, ...

  8. 杨老师课堂_Java核心技术下之控制台模拟记事本案例...

    预览效果图: 背景介绍: 编写一个模拟记事本的程序通过在控制台输入指令,实现在本地新建文件打开文件和修改文件等功能. 要求在程序中: 用户输入指令1代表"新建文件",此时可以从控制 ...

  9. Java模拟肯德基快餐店的收银系统

    1.题目名称 模拟肯德基快餐店的收银系统 要求:结合设计模式(2种以上)至少实现系统的以下功能: 1.正常餐品结算和找零. 2.基本套餐结算和找零. 3.使用优惠劵购买餐品结算和找零. 4.可在一定时 ...

最新文章

  1. 18DOM之节点操作
  2. Java中JDK,JRE和JVM之间的关系
  3. java 自定义正则表达式_java中正则表达式实例详解
  4. three.js两个点给线条加宽度_108m2家里镶金线条,就是不一样,装出大宅范!太美了!晒晒...
  5. 大话移动通信pdf_移动通信是怎么实现的?
  6. 二次修改:【练习题】构造方法的重载:Vehicles(交通工具)-Car(小汽车)和Truck(卡车)类继承于Vehicles类
  7. 07.德国博士练习_09_agg_query
  8. Redis数据库(四)——Redis集群模式(主从复制、哨兵、Cluster)
  9. Windows10电脑系统时间校准
  10. 伪样式:hover ,:active,:focus
  11. windows下的C++与cuda编译器位置
  12. 手机上网有几种方式?
  13. matlab fft 功率谱,matlab实现功率谱估计,关于FFT点数选取到底什么标准?
  14. Windows 10内置Hyper-V虚拟机安装XP系统(二) - 配置网络
  15. [产品]博客文章被企业群组收录的方法
  16. from collections import Counter计数器
  17. Python项目文件引用问题:ImportError: attempted relative import with no known parent package
  18. Android中Bitmap的分析与使用
  19. Think Python读书笔记及课后习题---【前三章】
  20. Linux攻关之基础模块五 Vim

热门文章

  1. 如何用木板做桥_为这份动手能力点赞!旧木板打磨后做成橱柜,效果可媲美定制的...
  2. pyplot 画多个图时搅合到了一起_这些认数字游戏,宝宝最喜欢,家长可以和宝宝一起玩...
  3. fedora 20 中关闭防火墙
  4. 单片机移频防啸叫_基于ARM9的防啸叫音频放大器的设计
  5. PostgreSQL12系统视图pg_stats
  6. STN可以增强CNN网络
  7. php 管理mysql数据库_php管理mysql数据库类
  8. 高考填报志愿计算机操作技巧,填报高考志愿技巧和方法有哪些
  9. php写按条件查询代码,php如何实现按条件查询
  10. java ios 字符串_Java 与 iOS使用RSA 加密签名