练习一:字符输出流写出字符数据
- 请用户从控制台输入信息,程序将信息存储到文件Info.txt中。可以输入多条信息,每条信息存储一行。当用户输入:”886”时,程序结束。
操作步骤:
- 创建MainAPP类,并包含main()方法
- 按照上述要求实现程序
代码:
public class Test01_07 {
public static void main(String[]args) throws IOException {
//1. 指定输出流, 对应的文件Info.txt
FileWriter bw= new FileWriter("Info.txt");
//2.采用循环的方式,把每条信息存储一行到Info.txt中
Scanner sc= new Scanner(System.in);
while(true){
//获取键盘输入的一行内容
System.out.print("请输入内容:");
String str= sc.nextLine();
//当用户输入:”886”时,程序结束。
if ("886".equals(str)) {
break;//跳出循环
}
//把内容写入到Info.txt文件中
bw.write(str);
//换行
bw.write(System.lineSeparator());
}
//关闭流
bw.close();
}
}
练习二:字符输出流写出字符数据并存到集合中
- 从控制台接收3名学员的信息,每条信息存储到一个Student对象中,将多个Student对象存储到一个集合中。输入完毕后,将所有学员信息存储到文件Student.txt中。每名学员信息存储一行,多个属性值中间用逗号隔开。
操作步骤:
1.创建Student类,有如下属性:
学号、姓名、性别、年龄
全部属性使用String类型。要求有无参,全参构造方法。所有属性私有,并提供公有get/set方法。
2.创建MainApp类,包含main()方法
在main()方法中:
1.定义一个存储Student对象的集合;
2.循环3次,从控制台接收3名学员信息,每条信息封装一个Student对象,将每个Student对象存储到集合中。
3.遍历集合,获取每个Student对象,取出所有属性值,输出到文件Test2_2.txt中。每名学员信息占一行。
代码:
public class Task02_03 {
public static void main(String[] args) throws IOException {
// 1.定义学生类, 定义存学生的集合
ArrayList<Student> list = new ArrayList<Student>();
// 2.通过3次循环,完成如下操作
Scanner sc = new Scanner(System.in);
for (int i = 1; i<= 3; i++) {
// 键盘输入学生的信息,
System.out.print("请输入第" + i + "名学生的学号:");
String id = sc.next();
System.out.print("请输入第" + i + "名学生的姓名:");
String name = sc.next();
System.out.print("请输入第" + i + "名学生的性别:");
String sex = sc.next();
System.out.print("请输入第" + i + "名学生的年龄:");
String age = sc.next();
// 把信息封装到Student对象中
Student s = new Student(id, name, sex, age);
// 把Student对象存到集合里
list.add(s);
}
// 3.将所有学员信息存储到文件Student.txt中。
FileWriter out = new FileWriter("Student.txt");
// 每名学员信息存储一行,多个属性值中间用逗号隔开。
for (int i = 0; i<list.size(); i++) {
// 1.获取集合中每一个学生对象
Student s = list.get(i);
// 2.获取对象中的每一个属性值,多个属性值中间用逗号隔开
String line = s.getId() + "," + s.getName() + "," + s.getSex() + "," + s.getAge();
// 3.按照指定的格式把对象的属性值,写入到文件中
out.write(line);
out.write(System.lineSeparator());
}
out.close();// 关闭流
}
}