Java小程序-记事本(I/O文件流的小练习)

效果图:


修改前所保存的文件:


修改后所保存的文件:



实现代码:

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;
			}

		}
	}

}
本来想把这些方法都再封装一下的,觉得太麻烦了,有更好的方法欢迎在下方留言
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值