用户输入写入java中的文件

时间:2014-12-13 20:09:07

标签: java

如何在文件java中编写文本。我有10行,我想写每行?到目前为止我这样做了

    String filename ="data.txt";
    PrinterWriter output= new PrintWriter ( new FileWriter(filename, true));
    System.out.println("Please enter the student's data: ");

我希望用户为每个学生添加学生(我希望他们添加他们的名字,学生编号,性别,他们的年份,生日,也许是电话号码2和时间表。)我不知道如何这样做

2 个答案:

答案 0 :(得分:0)

您可以这样做:为学生数据HashMap<StudentData>创建一个hashmap,并将所有用户输入放入HashMap。如果您不希望任何key识别数据,请使用Vector<StudentData>

收集完所有数据后,遍历HashMap / Vector并将其写入文件。

要写入该文件,您需要使用write

public void writeData()
{
FileWriter output=  new FileWriter("data.txt", true);

// iterate through hashmap/vector and store value in a variable or just write directly

ouput.write(value);
output.close();

}

答案 1 :(得分:0)

您已经创建了Writer对象,您只需要写入该文件即可。如果您在某个数组或Arraylist中存储了元素,那么只需在循环中执行pw.println()。要接受用户输入,请查看Scanner类E.g。

import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class WriteToFile {

    public static void main(String[] args) throws IOException {
        PrintWriter pw = new PrintWriter(new FileWriter("output.txt"));

        Scanner scanner = new Scanner(System.in);
        System.out.println("enter n to finish");
        String text = "";
        while (!text.equals("n")) {
            System.out.println("enter first name");
            text = scanner.next();
            pw.write(text + ",");
            System.out.println("enter last name");
            text = scanner.next();
            pw.write(text + ",");
            System.out.println("enter sex");
            text = scanner.next();
            pw.write(text);
            //add more fields
            //finally
            pw.println();
            System.out.println("Continue?");
            text = scanner.next();
        }
        pw.close();
        System.out.println("completed");
    }
}