package FILE;
//(1) 用户输入指令1代表“新建日记本”,可以从控制台获取用户输入的日记内容。
// (2) 指令2代表“打开日记本”,读取指定路径的txt文件的内容并输出到控制台。
// (3) 指令3代表“修改日记本”,修改日记时,既可以修改新建日记本的内容,也可以修改已打开日记本的内容。
// (4) 指令4代表“保存”,如果是新建的日记本需要保存,则将日记本保存到用户输入的路径;如果是打开的日记本需要保存,则将原来内容覆盖;
// (5) 指令5代表“退出”,即退出本系统。
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
//打印条件
System.out.println("1.新建; 2.打开; 3.修改 4.保存; 5.退出");
//变量opt是输入的数字
int opt;
//获取用户工作的准备
Scanner scanner=new Scanner(System.in);
//while循环,将整个程序进行无限循环
while(true){
//获取刚才输入的数字,赋值给opt。
opt=scanner.nextInt();
//如果输入的1-5以外的数字,则输出非法数据,后继续执行
if(opt<1||opt>5){
System.out.println("非法数据");
continue;
}
//如果输入为1,则进入新建日记本
if(opt==1){
System.out.println("请输入日记内容,输入完成后请输入‘stop’结束");
//StringBuilder用来处理字符串的一些基本操作
StringBuilder newDiaryContent=new StringBuilder();
//line为日记内容
String line;
//用户输入日记内容,如果用户输入日记内容不是stop则进入while循环。
//append将刚才输入的内容进行拼接(注:如果始终没有stop则会一直循环)
while(!(line=scanner.next()).equals("stop")){
newDiaryContent.append(line).append("\n");
}
//将文件保存在哪里
System.out.println("请输入保存路径:");
//输入要保存的路径
String savePath=scanner.next();
//try,catch是为了接受异常
try{
//运用字符流,将文件进行保存
FileWriter writer=new FileWriter(savePath);
//将内容写入
writer.write(newDiaryContent.toString());
//关闭文件
writer.close();
System.out.println("新建日记本并保存成功");
} catch (IOException e) {
//如果出现异常则进入catch,输出getMessage输出异常的原因。
System.out.println("保存日记本时出错:"+e.getMessage());
}
//如果输入的opt为2
}else if(opt==2){
System.out.println("请输入要打开的日记本路径:");
//输出要打印的文件路径,并传入到openPath
String openPath=scanner.next();
try{
//从openPath获取文件
Scanner fileScanner=new Scanner(new File(openPath));
//while循环检查输入的是否还有下一行
while(fileScanner.hasNextLine()){
//读取输入的路径(除回车)
System.out.println(fileScanner.nextLine());
}
//关闭扫描器
fileScanner.close();
} catch (FileNotFoundException e) {
//如果出现异常,输入异常的原因
System.out.println("找不到指定的日记本文件:"+e.getMessage());
}
//如果输入的opt为3,进行修改日记本
}else if(opt==3){
System.out.println("请输入要修改的日记本路径:");
//输入要修改的日记本路径
String modifyPath=scanner.next();
try{
//进行目录的操作
File file=new File(modifyPath);
Scanner fileScanner=new Scanner(file);
//进行字符串操作
StringBuilder existingContent=new StringBuilder();
//检查是否还有下一行
while(fileScanner.hasNextLine()){
//将字符串进行拼接
existingContent.append(fileScanner.nextLine()).append("\n");
}
//关闭扫描器
fileScanner.close();
System.out.println("当前日记内容:");
//输出当前的日记内容
System.out.println(existingContent.toString());
System.out.println("请输入修改后的内容,输入完成后回车再输入‘stop’结束");
//进行字符串的拼接
StringBuilder modifiedContent=new StringBuilder();
String line;
//如果输入的不包含stop则报错
while(!(line= scanner.next()).equals("stop")){
//进行字符串的拼接
modifiedContent.append(line).append("\n");
//进行字符流的操作
FileWriter writer=new FileWriter(file);
//写入内容
writer.write(modifiedContent.toString());
//关闭
writer.close();
System.out.println("修改日记本成功");
}
//如果出现异常,则直接输出以及异常原因
} catch (IOException e) {
System.out.println("修改日记本时出错:"+e.getMessage());
}
}
//如果输入的数字为4,则进行保存
else if(opt==4){
System.out.println("请输入要保存的日记本路径");
//输入要保存的路径
String saveDiaryPath=scanner.next();
try{
//将保存的文件进行操作
File file=new File(saveDiaryPath);
//判读文件是否存在
if(file.exists()){
Scanner fileScanner=new Scanner(file);
//进行字符串操作
StringBuilder existingContent=new StringBuilder();
//检查是否还有下一行
while(fileScanner.hasNextLine()){
//读取输入的数据并且拼接
existingContent.append(fileScanner.nextLine()).append("\n");
}
//关闭扫描器
fileScanner.close();
System.out.println("当前日记内容");
//查看当前日记的内容
System.out.println(existingContent.toString());
System.out.println("请输入修改后的内容,输入完成后请输入‘stop结束’");
//对字符串进行一系列的操作
StringBuilder modifiedContent=new StringBuilder();
String line;
//检查输入的里面是否包含stop
while(!(line=scanner.next()).equals("stop")){
//进行字符串的拼接
modifiedContent.append(line).append("\n");
}
//进行字符流的操作
FileWriter writer=new FileWriter(file);
//写入输入的内容
writer.write(modifiedContent.toString());
//关闭
writer.close();
System.out.println("保存成功");
}else{
System.out.println("指定的日记本文件不存在,请先新建或打开日记本");
}
//如果存在异常,输出异常的原因。
} catch (IOException e) {
System.out.println("保存时出错:"+e.getMessage());
}
}
//如果输入的为5,则直接退出。
else if(opt==5){
break;
}
}
}
}
源码:
package FILE;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
System.out.println("1.新建; 2.打开; 3.修改 4.保存; 5.退出");
int opt;
Scanner scanner=new Scanner(System.in);
while(true){
opt=scanner.nextInt();
if(opt<1||opt>5){
System.out.println("非法数据");
continue;
}
if(opt==1){
System.out.println("请输入日记内容,输入完成后请输入‘stop’结束");
StringBuilder newDiaryContent=new StringBuilder();
String line;
while(!(line=scanner.next()).equals("stop")){
newDiaryContent.append(line).append("\n");
}
System.out.println("请输入保存路径:");
String savePath=scanner.next();
try{
FileWriter writer=new FileWriter(savePath);
writer.write(newDiaryContent.toString());
writer.close();
System.out.println("新建日记本并保存成功");
} catch (IOException e) {
System.out.println("保存日记本时出错:"+e.getMessage());
}
}else if(opt==2){
System.out.println("请输入要打开的日记本路径:");
String openPath=scanner.next();
try{
Scanner fileScanner=new Scanner(new File(openPath));
while(fileScanner.hasNextLine()){
System.out.println(fileScanner.nextLine());
}
fileScanner.close();
} catch (FileNotFoundException e) {
System.out.println("找不到指定的日记本文件:"+e.getMessage());
}
}else if(opt==3){
System.out.println("请输入要修改的日记本路径:");
String modifyPath=scanner.next();
try{
File file=new File(modifyPath);
Scanner fileScanner=new Scanner(file);
StringBuilder existingContent=new StringBuilder();
while(fileScanner.hasNextLine()){
existingContent.append(fileScanner.nextLine()).append("\n");
}
fileScanner.close();
System.out.println("当前日记内容:");
System.out.println(existingContent.toString());
System.out.println("请输入修改后的内容,输入完成后回车再输入‘stop’结束");
StringBuilder modifiedContent=new StringBuilder();
String line;
while(!(line= scanner.next()).equals("stop")){
modifiedContent.append(line).append("\n");
FileWriter writer=new FileWriter(file);
writer.write(modifiedContent.toString());
writer.close();
System.out.println("修改日记本成功");
}
} catch (IOException e) {
System.out.println("修改日记本时出错:"+e.getMessage());
}
}
else if(opt==4){
System.out.println("请输入要保存的日记本路径");
String saveDiaryPath=scanner.next();
try{
File file=new File(saveDiaryPath);
if(file.exists()){
Scanner fileScanner=new Scanner(file);
StringBuilder existingContent=new StringBuilder();
while(fileScanner.hasNextLine()){
existingContent.append(fileScanner.nextLine()).append("\n");
}
fileScanner.close();
System.out.println("当前日记内容");
System.out.println(existingContent.toString());
System.out.println("请输入修改后的内容,输入完成后请输入‘stop结束’");
StringBuilder modifiedContent=new StringBuilder();
String line;
while(!(line=scanner.next()).equals("stop")){
modifiedContent.append(line).append("\n");
}
FileWriter writer=new FileWriter(file);
writer.write(modifiedContent.toString());
writer.close();
System.out.println("保存成功");
}else{
System.out.println("指定的日记本文件不存在,请先新建或打开日记本");
}
} catch (IOException e) {
System.out.println("保存时出错:"+e.getMessage());
}
}
else if(opt==5){
break;
}
}
}
}