notepad java补全main函数_Notepad.java

package zuoye;

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 sc=new Scanner(System.in);

System.out.println("--1:新建文件 2:打开文件 3:修改文件 4:保存 5:退出--");

while(true){

System.out.println("请输入操作指令:");

int command=sc.nextInt();

switch(command) {

case 1:

createFile();//1:新建文件

break;

case 2:

openFile();//2:打开文件

break;

case 3:

editFile();//3:修改文件

break;

case 4:

saveFile();//4:保存

break;

case 5:

exit();//5:退出

break;

default:

System.out.println("您输入的指令错误!");

break;

}

}

}

/*

* 新建文件 从控制台获取内容

*/

private static void createFile() {

// TODO 自动生成的方法存根

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 openFile() throws IOException {

// TODO 自动生成的方法存根

message ="";//打开文件时,将暂存内容清空

Scanner sc=new Scanner(System.in);

System.out.println("请输入打开文件的位置:");

filePath=sc.next();//获取打开文件的路径

//控制只能输入TXT格式的文件路径

if(filePath !=null && !filePath.endsWith(".txt")) {

System.out.println("请选择文本文件!");

return;

}

FileReader in =new FileReader(filePath);//实例化一个FileReader对象

char[] charArry=new char[1024];//缓冲数组

int len =0;

StringBuffer sb=new StringBuffer();

//循环读取,一次读取一个字符数组

while ((len=in.read(charArry))!=-1) {

sb.append(charArry);

}

message=sb.toString();//激情打开文件内容暂存

System.out.println("打开文件内容:"+"\r\n"+message);

in.close();

}

/*修改文件内容

*通过字符串替换的形式

*/

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")) {//当输入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 saveFile () throws IOException {

Scanner sc = new Scanner (System.in);

FileWriter out = null;

if (filePath != null) {//文件是由“打开”载入的

out = new FileWriter(filePath);//将将原文件覆盖

} else {//新建的文件

System.out.print("请输入文件保存的绝对路径:");

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;//将文件路径至null

}

/*

* 退出

*/

private static void exit() {

// TODO 自动生成的方法存根

System.out.println("您已退出系统,谢谢使用");

System.exit(0);

}

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值