delete.java

来自「上次小组练习做的一个学生信息管理小系统 控制台的」· Java 代码 · 共 65 行

JAVA
65
字号
package system;

import java.io.*;
import java.util.*;

/**
 * 实现删除某条学籍信息
 * 
 * @author gold
 * @version 0.8
 * @since jdk 1.5
 */
public class Delete {
	static boolean isDelete = true;// 声明布尔值isDelete,并赋值为ture

	// 删除某条数据
	@SuppressWarnings("unchecked")
	public void deleteData(long deleteNumber) throws IOException,// 定义删除信息的方法
			FileNotFoundException {

		try {
			DataMap mp = new DataMap();// 生成一个自己编写的容器
			long j = 0;
			String s1 = "";// 声明一个字符串s1,并为其开辟内存空间
			String s2 = "";// 声明一个字符串s2,并为其开辟内存空间
			BufferedReader in = new BufferedReader(new FileReader(
					"d:\\data.txt"));// 从d:\\data.txt读入学籍信息
			while ((s1 = in.readLine()) != null) {
				j = numberTokenizer(s1);
				mp.put(j, s1);
			}
			try {
				if (mp.containsKey(String.valueOf(deleteNumber).toString())) {
					mp.remove(deleteNumber);
				} else
					throw new NumberNotFoundException();
				Collection c = mp.values();
				Iterator iter = c.iterator();
				while (iter.hasNext()) {
					s1 = (String) iter.next();// 为s1赋值
					s2 += s1 + "\n"; // s1与s2相加,将值赋给s2,并换行
				}
				BufferedReader in2 = new BufferedReader(new StringReader(s2));
				PrintWriter out = new PrintWriter(new BufferedWriter(
						new FileWriter("d:\\data.txt")));

				while ((s1 = in2.readLine()) != null) {
					out.println(s1);
				}
				out.close();
			} catch (NumberNotFoundException e) {
				isDelete = false;// 将布尔值isDelete赋值为false
				System.out.println(deleteNumber + " no found :(");
			}
		} catch (IOException e) {
		}
	}

	public long numberTokenizer(String s) throws IOException {
		StringTokenizer st = new StringTokenizer(s, " ");
		return Integer.valueOf((st.nextToken())).longValue();
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?