使用文件io流实现通讯录管理系统的增删改查功能

本文介绍如何利用文件IO流实现通讯录管理系统的增删改查功能,避免配置数据库,直接操作文件。通过字符流进行读写,提供全部代码及效果图,并预告将发布基于MySQL的实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用文件io流来处理增删改查功能的好处就是不用配置mysql那些数据库,可以直接使用。这两个就是文件的读入和读取,我采用的是字符流(增加,删除,修改功能采用字节流,感兴趣的话可以修改成字符流):

 public static void fileWrite(String s) {//文件写入
        try {
            fileWriter = new FileWriter(file, true);
            bw = new BufferedWriter(fileWriter);
            bw.write(s);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                bw.close();
                fileWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static String fileRead(String dest) {//文件读取
        try {
            fileReader = new FileReader(file);
            bf = new BufferedReader(fileReader);
            String ss;
            while((ss = bf.readLine()) != null) {
                String[] temp = ss.split(",");
                if(temp[0].equals(dest)) {
                    return ss;
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                bf.close();
                fileReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }  

增添功能

public static boolean addFileContent(String content) {//信息增添功能
		BufferedWriter bw = null;
		try {
			bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("..\\通讯录管理系统\\src\\通讯录管理系统\\data.txt"), "gb2312"));
			bw.write(content);
			bw.flush();
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		} finally {
			if (bw != null) {
				try {
					bw.close();
				} catch (IOException e) {
					bw = null;
				}
			}
		}
		return true;
	}

修改功能

 public static String replaceFileContent( String oldString, String newString) {//信息修改功能
    	BufferedReader br = null;
		String line = null;
		StringBuffer bufAll = new StringBuffer();
		try {
			br = new BufferedReader(new InputStreamReader(new FileInputStream("..\\通讯录管理系统\\src\\通讯录管理系统\\data.txt"), "gb2312"));
			while ((line = br.readLine()) != null) {
				StringBuffer buf = new StringBuffer();
					if (line.equals(oldString)) {			
						buf.append(line);
						int indexOf = line.indexOf(oldString);
						buf.replace(indexOf, indexOf + oldString.length(), newString);
						bufAll.append(buf);	
					} else {
						buf.append(line);
						buf.append(System.getProperty("line.separator"));	
						bufAll.append(buf);		
					}			 
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (Exception e) {
					br = null;
				}
			}
		}
		
		return bufAll.toString();
	}

删除功能:

 public static String deleteFileContent( String oldString,int i) {//信息删除功能
    	BufferedReader br = null;
		String line = null;
		StringBuffer bufAll = new StringBuffer();
		try {
			br = new BufferedReader(new InputStreamReader(new FileInputStream("..\\通讯录管理系统\\src\\通讯录管理系统\\data.txt"), "gb2312"));
			while ((line = br.readLine()) != null) {
				StringBuffer buf = new StringBuffer();
				String[] temp = line.split(",");
					if (temp[i].equals(oldString)) {				
					} else {
						buf.append(line);
						buf.append(System.getProperty("line.separator"));	
						bufAll.append(buf);		
					}			 
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (Exception e) {
					br = null;
				}
			}
		}
		
		return bufAll.toString();
	}
 

查询功能在文件io流就已经实现,这个功能就不用增加了

全部代码:

package 通讯录管理系统;
import java.io.*;
public class FileRW {
    private static FileWriter fileWriter;
    private static FileReader fileReader;
    private static BufferedReader bf;
    private static BufferedWriter bw;
    private static File file = new File("..\\通讯录管理系统\\src\\通讯录管理系统\\data.txt");
    public static void fileWrite(String s) {//文件写入
        try {
            fileWriter = new FileWriter(file, true);
            bw = new BufferedWriter(fileWriter);
            bw.write(s);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                bw.close();
                fileWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public static String fileRead(String dest) {//文件读取
        try {
            fileReader = new FileReader(file);
            bf = new BufferedReader(fileReader);
            String ss;
            while((ss = bf.readLine()) != null) {
                String[] temp = ss.split(",");
                if(temp[0].equals(dest)) {
                    return ss;
                }
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                bf.close();
                fileReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }  
    public static String deleteFileContent( String oldString,int i) {//信息删除功能
    	BufferedReader br = null;
		String line = null;
		StringBuffer bufAll = new StringBuffer();
		try {
			br = new BufferedReader(new InputStreamReader(new FileInputStream("..\\通讯录管理系统\\src\\通讯录管理系统\\data.txt"), "gb2312"));
			while ((line = br.readLine()) != null) {
				StringBuffer buf = new StringBuffer();
				String[] temp = line.split(",");
					if (temp[i].equals(oldString)) {				
					} else {
						buf.append(line);
						buf.append(System.getProperty("line.separator"));	
						bufAll.append(buf);		
					}			 
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (Exception e) {
					br = null;
				}
			}
		}
		
		return bufAll.toString();
	}
 
    public static String replaceFileContent( String oldString, String newString) {//信息修改功能
    	BufferedReader br = null;
		String line = null;
		StringBuffer bufAll = new StringBuffer();
		try {
			br = new BufferedReader(new InputStreamReader(new FileInputStream("..\\通讯录管理系统\\src\\通讯录管理系统\\data.txt"), "gb2312"));
			while ((line = br.readLine()) != null) {
				StringBuffer buf = new StringBuffer();
					if (line.equals(oldString)) {			
						buf.append(line);
						int indexOf = line.indexOf(oldString);
						buf.replace(indexOf, indexOf + oldString.length(), newString);
						bufAll.append(buf);	
					} else {
						buf.append(line);
						buf.append(System.getProperty("line.separator"));	
						bufAll.append(buf);		
					}			 
			}
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			if (br != null) {
				try {
					br.close();
				} catch (Exception e) {
					br = null;
				}
			}
		}
		
		return bufAll.toString();
	}
	public static boolean addFileContent(String content) {//信息增添功能
		BufferedWriter bw = null;
		try {
			bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("..\\通讯录管理系统\\src\\通讯录管理系统\\data.txt"), "gb2312"));
			bw.write(content);
			bw.flush();
		} catch (Exception e) {
			e.printStackTrace();
			return false;
		} finally {
			if (bw != null) {
				try {
					bw.close();
				} catch (IOException e) {
					bw = null;
				}
			}
		}
		return true;
	}
}
    

效果图:

 

 

 

 

 

 以后我会发布mysql形式实现增删改查功能,尽情期待。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

要转行的阿江因为实在卷不过捏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值