Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过用户输入在java中写入文件_Java - Fatal编程技术网

通过用户输入在java中写入文件

通过用户输入在java中写入文件,java,Java,如何在java文件中编写文本。我有10行,每行我都要写?到目前为止我都是这么做的 String filename ="data.txt"; PrinterWriter output= new PrintWriter ( new FileWriter(filename, true)); System.out.println("Please enter the student's data: "); 我希望用户为每个学生添加学生(我希望他们添加他们的名字、学生号码、性别、年

如何在java文件中编写文本。我有10行,每行我都要写?到目前为止我都是这么做的

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

我希望用户为每个学生添加学生(我希望他们添加他们的名字、学生号码、性别、年份、生日、可能的电话号码2和时间表)。我不知道如何做到这一点。

您可以这样做:为学生数据
hashmap
创建一个hashmap,并将所有用户输入放入hashmap。如果您不希望任何
识别数据,我会使用
向量

收集完所有数据后,遍历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();

}

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

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");
    }
}

这与写入控制台相同。你只需要再写一些代码,看看你的家庭作业做得怎么样。每行我该怎么做?因为我的老师只教我们像名字一样写创建
学生
对象将所有值分配给这个对象,然后将它们添加到
列表
,使用这个
列表
当你想将数据放入文件时,我可以这样做吗?将用户输入分配到特定的行,例如,如果用户输入学生的姓氏,它将转到第[0]行?处理多行时,通常需要一个循环。希望你能找到如何使用循环,即使你的老师没有介绍。具体细节取决于数据的输入方式和表示方式。注意:我们不能只给你一个答案,因为对于家庭作业来说,根据我们不知道的所教内容给出预期的答案是很重要的。你能解释一下你到底想用它来实现什么吗?嗯,一行一行地做是很困难的。如果用户按return键,则需要写入数据,并且写入命令太多。我建议找出一种方法将数据存储在某个变量中,然后写入。但是我希望用户输入,我给你的信息就像数据一样。我希望用户为每个学生添加学生(我希望他们添加他们的名字、学生号码、性别、年份、生日,可能还有电话号码2和时间表)我不知道怎么做。就像我在帖子上提供的数据一样,有没有一个简单的方法可以做到这一点?ik u做了很多工作,因为我不明白,我的老师会问我很多问题。我能用for loop做这个吗?@Pokemonmaster我没怎么玩它。