Java怎么利用IO流实现简易的记事本功能
作者:WarmHope
时间:2023-04-27
浏览:1
IObit Uninstaller 15 Pro
IObit Uninstaller 是一款专为 Win 平台设计的软件卸载工具,卸载干净彻底。清理链路的完整性会更好一些,做应用卸载、残留处理和空间整理时,通常能少走很多手动排查步骤。
¥29
Windows
2026-08-22
要求:编写一个模拟日记本的程序,通过在控制台输入指令,实现在本地新建文件,打开日记本和修改日记本等功能。指令1代表“新建日记本”,可以从控制台获取用户输入的日记内容指令2代表“打开日记本”,读取指定路径的TXT文件的内容并输出到控制台指令3代表“修改日记本”,修改日记本中原有的内容指令4代表保存指令5代表退出importjava.io.*;importjava.util.Scanner;publicclassIO_日记本{/***模拟日记本程序*/privatestaticStringfilePath;p
要求:编写一个模拟日记本的程序,通过在控制台输入指令,实现在本地新建文件,打开日记本和修改日记本等功能。
指令1代表“新建日记本”,可以从控制台获取用户输入的日记内容
指令2代表“打开日记本”,读取指定路径的TXT文件的内容并输出到控制台
指令3代表“修改日记本”,修改日记本中原有的内容
指令4代表保存
指令5代表退出
import java.io.*;
import java.util.Scanner;
public class IO_日记本 {
/**
* 模拟日记本程序
*/
private static String filePath;
private static String message = "";
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("---------日记本---------");
System.out.println("1.写日记");
System.out.println("2.查看日记");
System.out.println("3.修改日记");
System.out.println("4.保存");
System.out.println("5.退出");
System.out.println("注意:每次输入内容后记得保存!");
System.out.print("请输入操作指令:");
int command = sc.nextInt();
switch (command) {
case 1:
// 1:新建文件(写日记)
createFile();
break;
case 2:
// 2:打开文件(查看日记)
openFile();
break;
case 3:
// 3:修改文件
editFile();
break;
case 4:
// 4:保存
saveFile();
break;
case 5:
// 5:退出
System.out.println("谢谢使用本系统,欢迎下次再来!");
System.exit(0);
break;
default:
System.out.println("您输入的指令错误!");
break;
}
}
}
//写一个方法写入文件内容
private static void createFile() {
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 saveFile() throws Exception {
FileWriter out = new FileWriter("文件路径", true);
out.write(message + "\r\n");//将输入内容写入
message = "";
out.close();
}
//写一个方法打开文件
public static void openFile() throws Exception {
Reader r = new FileReader("文件路径");
BufferedReader br = new BufferedReader(r);
// char[] c = new char[1024];//定义一个桶装每次读取多少个数据
// int len;
// while ((len = br.read(c)) != -1) {//读取所有内容,如果读完所有内容则停止
// String str = new String(c, 0, len);//每次读取0到len的所有内容
// System.out.print(str);//因为读取时会自动换行所以这里我们不需要换行
// }
String line;
while ((line = br.readLine()) != null) {//一次读取一行
System.out.println(line);//因为读取一行时程序不会自己换行,所以这里我们需要给它换行
}
//System.out.println();//读完换行
}
//写一个方法修改文件
/**
* 替换
* @throws IOException
*/
public static void editFile() throws IOException{
Scanner sc = new Scanner(System.in);
//原有的内容
System.out.println("原文件内容:");
String str1 =sc.next();;
//要替换的内容
System.out.println("修改成:");
String str2 =sc.next();
// 读取
File file = new File("文件路径");
FileReader in = new FileReader(file);
BufferedReader buf = new BufferedReader(in);//缓冲流
// 内存流, 作为临时流
CharArrayWriter tempStream = new CharArrayWriter();
// 替换
String line = null;
while ( (line = buf.readLine()) != null) {
// 替换每行中, 符合条件的字符串
line = line.replaceAll(str1, str2);//正则表达式
// 将该行写入内存
tempStream.write(line+"\r\n");
}
// 关闭输入流
buf.close();
// 将内存中的流写入文件
FileWriter fw = new FileWriter(file);
tempStream.writeTo(fw);
fw.close();
}
}
作者最新文章
Photoshop自定义图层样式的保存、导入与管理技巧
2026-10-05 14:17
Photoshop蒙版在哪里调出来?蒙版按钮位置及使用教程
2026-09-29 09:53
Photoshop图层阵列怎么做?复制多个图层并整齐排列
2026-09-22 16:42
3dmax动画技巧总结:动画制作步骤与渲染视频教程
2026-09-22 14:47
在线PDF转TXT操作步骤与乱码排查指南
2026-09-04 13:02
上一篇:
Java找不到或无法加载主类怎么解决
下一篇:
Java怎么用局域网实现聊天室功能
热门文章
更多
精品专题
更多
Mac软件
更多
WINDOWS
更多









































