用输入/输出写一个程序,让用户输入一些姓名和学号。每一个姓名和学号将加在文件里。用户通过输入"quit"来告诉系统整个列表已输入完毕。如果用户输完整个列表,程序将创建一个输出文件 studentno.dat
文件 studentno.dat 中的数据格式如:
2004001,杨一
2004002,张三
2004003,李四
文件 studentno.dat 中的数据格式如:
2004001,杨一
2004002,张三
2004003,李四
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class Test {
public static void main(String args[]) throws IOException{
Scanner scanner = new Scanner(System.in);
String tempId = "";
String tempName = "";
int count = 0;//数组计数器
Stu[] stuArray = new Stu[100];//声明一个能储存100学生信息的学生数组
/*初始化数组*/
for(int i = 0; i < stuArray.length; i++) {
stuArray[i] = new Stu();
}
while(true){//循环设置数组中元素
System.out.println("请输入学号: ");
tempId = scanner.next();
if(tempId.equals("quit")) {//学号为quit跳出
break;
}
System.out.println("请输入姓名:");
tempName = scanner.next();
if(tempName.equals("quit")) {//姓名为quit跳出
break;
}
stuArray[count].setId(tempId);//设置学号
stuArray[count].setName(tempName);//设置姓名
count++;//数组计数器加1
}
//字符流对象
FileWriter fw = new FileWriter("c:/studentno.dat");
BufferedWriter bw = new BufferedWriter(fw);
for(int j = 0; j < count; j++) {//循环写入文件中
bw.write(stuArray[j].getId() + "," + stuArray[j].getName());
bw.newLine();
}
bw.close();//关闭流
fw.close();
}
}class Stu {//学生信息类
private String id;
private String name;
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;
}
}
是不错……
但在不知道输入个数的前提下,为什么要使用数组呢?还一大早全实例化了等着,呵呵……
小改了一下:import java.io.*;
import java.util.*;public class Test {
public static void main(String args[]) throws IOException{
Scanner scanner = new Scanner(System.in);
String stuId, stuName;
List<Stu> stuList = new ArrayList<Stu>();
while(true){
System.out.print("请输入学号: ");
stuId = scanner.nextLine();
if( "quit".equals( stuId ) )
break;
System.out.print("请输入姓名:");
stuName = scanner.nextLine();
if( "quit".equals( stuName ) )
break;
stuList.add( new Stu(stuId, stuName) );
}
//字符流对象
FileWriter fw = new FileWriter("e:/studentno.dat");
BufferedWriter bw = new BufferedWriter(fw);
for(int j = 0; j < stuList.size(); j++) {//循环写入文件中
Stu s = stuList.get(j);
bw.write(s.getId() + "," + s.getName());
bw.newLine();
}
bw.close();//关闭流
}
}class Stu {//学生信息类
private String id;
private String name;
public Stu(String id, String name) {
super();
this.id = id;
this.name = name;
}
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;
}
}
import java.io.*;public class T23 {
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner(System.in);
Student[] stuArr = new Student[100];
String tempId ="";
String tempName = "";
int count = 0;
for(int i =0 ;i<100 ;i++) {
stuArr[i] = new Student();
}
while(true) {
System.out.println("请输入姓名:");
tempName = sc.next();
if(tempName.equals("quit")) {
break;
}
System.out.println("请输入学号:");
tempId = sc.next();
if(tempId.equals("quit")) {
break;
}
stuArr[count].setName(tempName);
stuArr[count].setSno(tempId);
count++;
}
System.out.println(count);
BufferedWriter br = new BufferedWriter(
new FileWriter(new File("studentsno.dat"),true));
for(int j= 0 ;j<count ;j++) {
br.write(stuArr[j].getSno() + ":" + stuArr[j].getName());
br.newLine();
br.flush();
}
br.close();
}
}
class Student {
private String sno;
private String name;
public String getSno() {
return sno;
}
public void setSno(String sno) {
this.sno = sno;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}BuffedWriter不flush写不了数据,整理了一下一楼的,呵呵
public static void main(String[] args)throws IOException{
File f = new File("E:\\study\\studentno.dat");
StringBuffer outer = new StringBuffer();
FileWriter fw = new FileWriter(f);
BufferedWriter bw = new BufferedWriter(fw);
while(true){
outer = new StringBuffer();
System.out.println("Please input a no: ");
String str = new BufferedReader(new InputStreamReader(System.in)).readLine();
StringBuffer strp = new StringBuffer(str);
if(str.equals("quit")){
break;
}
outer.append(strp);
System.out.println("Please input a name: ");
String str1 = new BufferedReader(new InputStreamReader(System.in)).readLine();
StringBuffer str1p = new StringBuffer(str1);
if(str1.equals("quit")){
bw.write(outer.toString());
break;
}
outer.append(new StringBuffer(","));
outer.append(str1p);
outer.append("\r\n");
bw.write(outer.toString());
}
bw.close();
fw.close();
}
}
所以这里可以放心。
Scanner scanner = new Scanner(System.in);
FileWriter fw = new FileWriter("e:/studentno.dat");
BufferedWriter bw = new BufferedWriter(fw);
String stuId, stuName; while (true) { System.out.print("请输入学号: ");
stuId = scanner.nextLine();
if ("quit".equals(stuId))
break; System.out.print("请输入姓名:");
stuName = scanner.nextLine();
if ("quit".equals(stuName))
break;
bw.write(stuId + "," + stuName);
bw.newLine();
} bw.close();// 关闭流 }