效果图:
修改前所保存的文件:
修改后所保存的文件:
实现代码:
com.ioDemo包
package com.ioDemo;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class FileDemo {
private static final String HH = System.getProperty("line.separator");
/**
* 打开文件
* @param FilePath
* @return
*/
public String openFile(String FilePath){
File file = new File(FilePath);
if(!file.exists()){
return null;
}
StringBuffer stringBuffer = new StringBuffer();
BufferedReader bufferedReader = null;
try {
bufferedReader = new BufferedReader(new FileReader(file));
String line = null;
while((line = bufferedReader.readLine())!=null){
stringBuffer.append(line);
stringBuffer.append(HH);
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
bufferedReader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return stringBuffer.toString();
}
/**
* 保存文件
* @param FilePath
* @return
*/
public void saveFile(String content,String FilePath){
File file = new File(FilePath);
BufferedWriter bufferedWriter = null;
try {
bufferedWriter = new BufferedWriter(new FileWriter(file));
bufferedWriter.write(content);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
bufferedWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
text包:
package text;
import java.util.Scanner;
import com.ioDemo.FileDemo;
public class TextDemo {
private static final String HH = System.getProperty("line.separator");
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
FileDemo fileDemo = new FileDemo();
System.out.println("--1: 新建文件\t2: 打开文件\t3: 修改文件\t4: 保存文件\t5: 退出--");
// 文件路径
String FilePath = null;
// 文件内容
StringBuffer stringBuffer = null;
while (true) {
System.out.print("\n请输入操作指令: ");
int choice = in.nextInt();
switch (choice) {
case 1:
// 文件内容
stringBuffer = new StringBuffer();
System.out.println("请输入内容,停止编写请输入\"stop\":");
String content = "";
while (true) {
content = in.next();
if (content.equals("stop")) {
break;
}
stringBuffer.append(content);
stringBuffer.append(HH);
}
// 清空文件保存路径-需重新输入
FilePath = null;
break;
case 2:
System.out.print("请输入打开文件的位置: ");
FilePath = in.next();
if (fileDemo.openFile(FilePath) != null) {
System.out.println("打开文件内容:");
System.out.print(fileDemo.openFile(FilePath));
} else {
System.out.println("该位置没有文件!");
}
break;
case 3:
System.out
.println("请输入要修改的内容(以\"修改的目标文字:修改之后的文字\"格式),停止修改请输入\"stop\":");
while (true) {
String xg = in.next();
if (xg.equals("stop")) {
break;
}
String subStr = xg.substring(0, xg.indexOf(":"));
stringBuffer.replace(stringBuffer.indexOf(subStr),
stringBuffer.indexOf(subStr) + subStr.length(),
xg.substring(xg.indexOf(":") + 1));
}
System.out.println("修改后的内容:");
System.out.print(stringBuffer.toString());
break;
case 4:
if (FilePath == null) {
System.out.print("请输入文件保存的绝对路径: ");
FilePath = in.next();
}
fileDemo.saveFile(stringBuffer.toString(), FilePath);
System.out.println("保存成功~");
break;
case 5:
System.out.println("您已退出系统,谢谢使用!");
System.exit(0);
break;
default:
break;
}
}
}
}
本来想把这些方法都再封装一下的,觉得太麻烦了,有更好的方法欢迎在下方留言