ArrayList格式化输出到txt中

subarashii 2009-08-21 08:56:57
用arraylist数组存了一些学生对象 学生对象有三个属性 姓名 学号 爱好。现在想把这些学生对象格式化的输出到一个txt中。格式如下

姓名 学号 爱好
a 01 篮球
b 02 足球
c 03 台球
。。。。。。。。
。。。

中间省略

。。。。。

这些字符之间都是用\t来控制格式的 不是空格。
好像有一个类可以控制
哪位知道?帮小弟一把
...全文
242 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
migo2008 2009-08-22
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bao110908 的回复:]
Student 类重写 toString 方法,方法中使用 \t 拼接属性值
[/Quote]
学习了
migo2008 2009-08-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dz007 的回复:]
某个类不继承任何类,为什么写了toString 就是重写?

为什么给String赋值的时候,会自动调用?
[/Quote]
某个类不继承任何类?不可能,任何类都是Object子类,toString()是Object的方法

GGMMYQL 2009-08-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 dz007 的回复:]
某个类不继承任何类,为什么写了toString 就是重写?

为什么给String赋值的时候,会自动调用?
[/Quote]
不集成 任何 类 那就只能继承object 不叫重写,
可以直接调用,调用父类的 方法啊
dz007 2009-08-21
  • 打赏
  • 举报
回复
某个类不继承任何类,为什么写了toString 就是重写?

为什么给String赋值的时候,会自动调用?
hxbot 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hxbot 的回复:]
引用 4 楼 bao110908 的回复:
Student 类重写 toString 方法,方法中使用 \t 拼接属性值


Student 类重写 toString 方法,小弟不才,请问该句有如何用处?
[/Quote]


哦,我理解了,谢谢提醒。
bigbug9002 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 hxbot 的回复:]
引用 4 楼 bao110908 的回复:
Student 类重写 toString 方法,方法中使用 \t 拼接属性值


Student 类重写 toString 方法,小弟不才,请问该句有如何用处?
[/Quote]

把对象写到文件里的时候方便啊。
hxbot 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bao110908 的回复:]
Student 类重写 toString 方法,方法中使用 \t 拼接属性值
[/Quote]

Student 类重写 toString 方法,小弟不才,请问该句有如何用处?
  • 打赏
  • 举报
回复
Student 类重写 toString 方法,方法中使用 \t 拼接属性值
hxbot 2009-08-21
  • 打赏
  • 举报
回复
大致思想如下:

用到util包的ArrayList类,IO包,写文件,还有自定义一个Student类
Student类提供相应字段,相应的get set 访问器.

代码楼上的已经实现。
lcj_up 2009-08-21
  • 打赏
  • 举报
回复
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import java.util.ArrayList;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {

ArrayList list = new ArrayList<Student>();

Student s1 = new Student("a","01","篮球 ");

Student s2 = new Student("b","02","篮球 ");

Student s3 = new Student("c","03","台球 ");

list.add(s1);

list.add(s2);

list.add(s3);

PrintWriter pw = null;
try {
pw = new PrintWriter(new FileOutputStream("d:\\a.txt"),true);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

if(pw != null){
pw.println("姓名\t学号\t爱好");
for (Object object : list) {
Student student = (Student)object;
pw.println(student.getName()+"\t"+student.getNumber()+"\t"+student.getHobby());


}
}


}

}


结果:

a.txt:

姓名 学号 爱好
a 01 篮球
b 02 篮球
c 03 台球
bigbug9002 2009-08-21
  • 打赏
  • 举报
回复
这个要自己写一个方法:
void writeToFile(ArrayList<Student> sList){
BufferedWriter bw=new BufferedWirter(new OutputStreamWirter(new FileOutputStream(),"UTF-8"));
for(Student s : sList){
String str=s;
bw.write(str,0,str.length());
bw.newLine();
}
bw.flush();
bw.close();
}

为了达到输出的预期并使下面的语句能执行,你还要在Student类中重写toString()方法.
String str=s;

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧