用文件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形式实现增删改查功能,尽情期待。