简单对txt文档实现增删改查:
1、查看全部信息:
/**
*
*/
package com.zy.student;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
/**
* @author wc201
* 读取文件
*/
public class Reader {
/**
* 读取文件
* @return
*/
public List<Student> getRead() {
BufferedReader Reader = null;
String temp = null;
List<Student> list = new ArrayList<Student>();
try {
Reader = new BufferedReader(new InputStreamReader(new FileInputStream("e:\\abc.txt"),"UTF-8"));
while((temp = Reader.readLine())!= null) {
list.add(Student.getList(temp));
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//return list;
return list;
}
}
2、添加个人信息:
package com.zy.student;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Writer {
/**
* 写入文件
* @return
*/
public ArrayList<Student> getWrit() {
Scanner scanner = new Scanner(System.in);
ArrayList<Student> arraylist = new ArrayList<Student>();
FileWriter filewriter = null;
BufferedReader Reader = null;
String temp = null;
int number = 0;
int i = 0;
try {
Reader = new BufferedReader(new InputStreamReader(new FileInputStream("e:\\abc.txt"),"UTF-8"));
while((temp = Reader.readLine())!= null) {
i++;
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
filewriter = new FileWriter("e:\\abc.txt",true);//加true为追加模式
do {
Student student = new Student();
System.out.print("输入姓名:");
student.setName(scanner.next());
System.out.print("输入年龄:");
student.setAge(scanner.nextInt());
System.out.print("输入属性:");
student.setImage(scanner.next());
System.out.print("输入爱好:");
student.setHobby(scanner.next());
arraylist.add(student);
System.out.print("\n1、继续添加个人信息 2、退出添加个人信息:");
number = scanner.nextInt();
}while(number==1);
for(Student stu:arraylist){//循环写入
filewriter.write(i+"、:"+stu.getName()+":"+stu.getAge()+":"+stu.getImage()+":"+stu.getHobby()+"\n");//写入\n换行
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
filewriter.flush();
filewriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return arraylist;
}
}
3、删除个人信息:
/**
*
*/
package com.zy.student;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* @author wc201
*
*/
public class Deleter {
/**
* 删除文件
* @return
*/
public List<Student> getDelete() {
BufferedReader Reader = null;
FileWriter filewriter = null;
String temp = null;
String id = null;
List<Student> list = new ArrayList<Student>();
Scanner scanner = new Scanner(System.in);
System.out.print("输入你要删除信息的id:");
id = scanner.next();
try {
Reader = new BufferedReader(new InputStreamReader(new FileInputStream("e:\\abc.txt"),"UTF-8"));
while((temp = Reader.readLine())!= null) {
Student student = new Student();
String[] st = temp.split(":");
if(!st[0].equals(id+"、")) {
list.add(Student.getList(temp));
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
filewriter = new FileWriter("e:\\abc.txt");
int i = 0;
for(Student stu:list){//循环写入
filewriter.write(i+"、:"+stu.getName()+":"+stu.getAge()+":"+stu.getImage()+":"+stu.getHobby()+"\n");//写入\n换行
i++;
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
filewriter.flush();
filewriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
}
}
4、修改个人信息:
/**
*
*/
package com.zy.student;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* @author wc201
* 修改文件
*/
public class Alter {
public List<Student> getAlter() {
BufferedReader Reader = null;
FileWriter filewriter = null;
String temp = null;
String id = null;
List<Student> list = new ArrayList<Student>();
Scanner scanner = new Scanner(System.in);
System.out.print("输入你要修改信息的id:");
id = scanner.next();
try {
Reader = new BufferedReader(new InputStreamReader(new FileInputStream("e:\\abc.txt"),"UTF-8"));
while((temp = Reader.readLine())!= null) {
Student student = new Student();
String[] st = temp.split(":");
if(st[0].equals(id+"、")) {
student.setId(id+"、");
System.out.print("\n输入姓名:");
student.setName(scanner.next());
System.out.print("输入年龄:");
student.setAge(scanner.nextInt());
System.out.print("输入属性:");
student.setImage(scanner.next());
System.out.print("输入爱好:");
student.setHobby(scanner.next());
list.add(student);
}
if(!st[0].equals(id+"、")) {
list.add(Student.getList(temp));
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
filewriter = new FileWriter("e:\\abc.txt");
int i = 0;
for(Student stu:list){//循环写入
filewriter.write(i+"、:"+stu.getName()+":"+stu.getAge()+":"+stu.getImage()+":"+stu.getHobby()+"\n");//写入\n换行
i++;
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
try {
filewriter.flush();
filewriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return list;
}
}
5、学生类:
/**
*
*/
package com.zy.student;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* @author wc201 包含学生各种基本信息
*
*/
public class Student {
/**学生序号**/
private String id;
/**学生姓名**/
private String name;
/**学生年龄**/
private int age;
/**学生属性**/
private String image;
/**学生爱好**/
private String hobby;
public Student() {
super();
this.id = id;
this.name = name;
this.age = age;
this.image = image;
this.hobby = hobby;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getImage() {
return image;
}
public void setImage(String image) {
this.image = image;
}
public String getHobby() {
return hobby;
}
public void setHobby(String hobby) {
this.hobby = hobby;
}
public static Student getList(String str) {
Student student = new Student();
String[] st = str.split(":");
student.setId(st[0]);
student.setName(st[1]);
student.setAge(Integer.parseInt(st[2]));
student.setImage(st[3]);
student.setHobby(st[4]);
return student;
}
/**
* 输出格式
*/
public void getMan() {
String str = String.format("%s \t%s \t%d \t%s \t%s",this.id,this.name,this.age,this.image,this.hobby);
System.out.println(str);
}
/**
* 重写toString
*/
public String toString() {
return "id:"+this.id+",姓名:"+this.name+",年龄:"+this.age+",是个"+this.image+",喜欢"+this.hobby;
}
}
6、测试类:
/**
*
*/
package com.zy.student;
import java.util.List;
import java.util.Scanner;
/**
* @author wc201 测试类
*
*/
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
StringBuffer sb = new StringBuffer();
sb.append("\n=====================信息管理系统======================\n");
sb.append("=====================================================\n\n");
sb.append("1 - 查看所有信息\n");
sb.append("2 – 写入个人信息\n");
sb.append("3 – 删除个人信息\n");
sb.append("4 – 修改个人信息\n");
sb.append("\n=====================================================\n");
Scanner scanner = new Scanner(System.in);
int condition = 0;
do {
System.out.println(sb);
System.out.print("你的选择:");
int Selection = scanner.nextInt();
switch (Selection) {
case 1:
System.out.println("\n查看所有信息:\n");
System.out.println("编号\t姓名\t年龄\t属性\t爱好\n");
Read();
break;
case 2:
System.out.println("\n添加个人信息:\n");
Write();
break;
case 3:
System.out.println("\n删除个人信息:\n");
Delete();
break;
case 4:
System.out.println("\n修改个人信息:\n");
Alter();
break;
default:
System.out.println("没输对!");
}
System.out.print("\n是否继续操作(1、继续操作 2、退出系统):");
condition = scanner.nextInt();
} while (condition == 1);
}
/**
* 读取数据
*/
public static void Read() {
Reader reader = new Reader();
List<Student> list = reader.getRead();
for(Student stu:list) {
stu.getMan();
}
}
/**
* 写入数据
*/
public static void Write() {
Writer writer = new Writer();
writer.getWrit();
}
/**
* 删除数据
*/
public static void Delete() {
Deleter deleter = new Deleter();
List<Student> list = deleter.getDelete();
System.out.println("\n删除后的信息为:\n");
System.out.println("编号\t姓名\t年龄\t属性\t爱好\n");
for(Student stu:list) {
stu.getMan();
}
}
/**
* 修改数据
*/
public static void Alter() {
Alter alter = new Alter();
List<Student> list = alter.getAlter();
System.out.println("\n修改后的信息为:\n");
System.out.println("编号\t姓名\t年龄\t属性\t爱好\n");
for(Student stu:list) {
stu.getMan();
}
}
}