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模拟记事本的一些功能
最新推荐文章于 2020-04-17 11:25:37 发布