编写java程序,往一个txt文件里写入学生的基本信息,然后再读出这些信息并打印出来,最后把该文件拷贝到指

编写java程序,往一个txt文件里写入学生的基本信息,然后再读出这些信息并打印出来,最后把该文件拷贝到指定位置并在文件名前加入日期信息进行备份。我是初学者,只是一道简单... 编写java程序,往一个txt文件里写入学生的基本信息,然后再读出这些信息并打印出来,最后把该文件拷贝到指定位置并在文件名前加入日期信息进行备份。
我是初学者,只是一道简单实现的java题,不要复杂额
展开
 我来答
漿糊的江湖
2012-02-16 · TA获得超过163个赞
知道小有建树答主
回答量:108
采纳率:0%
帮助的人:92.8万
展开全部
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

/**
* 编写java程序,往一个txt文件里写入学生的基本信息,然后再读出这些信息并打印出来,
* 最后把该文件拷贝到指定位置并在文件名前加入日期信息进行备份。
* @author Jr
*
*/
public class IOStudent {
private static void writeObject(Object obj, String path) throws IOException {
ObjectOutputStream oos = null; // 从ObjectOutputStream这个名字就可以看出,这个类是专门针对对象进行写入的
try {
oos = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(path)));
oos.writeObject(obj);
} catch (IOException e) {
e.printStackTrace();
} finally {
oos.close(); // 写完一定要关,不然扣100工资
}
}
private static Object readObject(String path) throws Exception {
Object obj = null;
ObjectInputStream ois = null;
try {
ois = new ObjectInputStream(new BufferedInputStream(new FileInputStream(path)));
obj = ois.readObject();
} catch (Exception e) {
e.printStackTrace();
} finally {
ois.close(); // 读完也要关.
}
return obj;
}
public static void main(String[] args) throws Exception {
Student student = new Student();
student.setStudentId(731);
student.setName("五道杠");
student.setAge(13);
writeObject(student, "d:/obj.txt");
//上面对student对象写入obj.txt了
//---------------------------------
//下面开始把对象从obj.txt中读出
Student newStudent = (Student)readObject("d:/obj.txt"); // 这里需要吧Object类型强转为Student类型
System.out.println("学号是:" + newStudent.getStudentId());
System.out.println("姓名是:" + newStudent.getName());
System.out.println("年龄是:" + newStudent.getAge());
}
}
更多追问追答
追问
copyFile(new File("E://student.txt"),new File("D://20120216****.txt"));
你的回答很快,谢谢了,上面这个代码是我自己做的其中一句,有个难点,就是复制过的文件夹想改名字,格式是日期加上四位随机数,日期是自动获取,
你的Student变量有问题,这个程序运行不出来
追答
朋友对不起你了,昨天太困了,居然没把实体类拷贝进来
现在补上,还有最后补了复制文件的那一段。so sorry
import java.io.Serializable;
/**
* class名:Student
* class说明:实体类
* @author Jr
*
*/
public class Student implements Serializable { // 因为要序列化对象,所以一定要实现Serializable这个借口,这个是规定。

private static final long serialVersionUID = 5756604515232318672L;
private int studentId;
private String name;
private int age;
public int getStudentId() {
return studentId;
}
public void setStudentId(int studentId) {
this.studentId = studentId;
}
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;
}
}
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
下面的main方法添加了最后面部分
public static void main(String[] args) throws Exception {
Student student = new Student();
student.setStudentId(731);
student.setName("五道杠");
student.setAge(13);
writeObject(student, "d:/obj.txt");
// 上面对student对象写入obj.txt了
// ---------------------------------
// 下面开始把对象从obj.txt中读出
Student newStudent = (Student)readObject("d:/obj.txt"); // 这里需要吧Object类型强转为Student类型
System.out.println("学号是:" + newStudent.getStudentId());
System.out.println("姓名是:" + newStudent.getName());
System.out.println("年龄是:" + newStudent.getAge());
// !!!添加部分!!! 下面开始复制
long nowTime = System.currentTimeMillis(); // 获取系统时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
String newPath = "d:/" + sdf.format(nowTime) + "student.txt";
writeObject(newStudent, newPath);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式