输入内容不保存在文本文件中

时间:2019-05-09 03:44:44

标签: java

这是用于学校项目的。我想用JAVA创建一个文本文件。

下面是我想在游戏中使用的代码的一部分。

  • 用户需要输入名称(仅输入一次);下面的代码不断询问姓名,直到被取消。

  • 名称应保存在开头创建的文本文件中

  • 我尝试使用数组列表,但可以随意使用任何其他数据结构

这是我到目前为止所拥有的。我可以输入名称,但不会保存在txt文件中。

import javax.swing.*;
import java.io.*;
import java.lang.String;
import java.util.ArrayList;



public class Array {
    public static void main(String[] args) throws IOException {
        FileWriter fileName = new FileWriter("MyFile.txt", true);


        ArrayList aList = new ArrayList();
        String Player = " ";
        while (!Player.isEmpty()){
            Player = JOptionPane.showInputDialog("Name a friend please.");
           // if (!Player.isEmpty());

        }
    try{
       FileWriter fw;
        fw = new FileWriter(String.valueOf(fileName));
        Writer output = new BufferedWriter(fw);

        int sz = 1;
        for ( int i = 0 ; i < sz ; i++){
           output.write(aList.get(i).toString() + "\n");
       }
        output.close();
    }
    catch (Exception e) {
        JOptionPane.showMessageDialog(null, "I cannot create that file");
    }
    }

    }

2 个答案:

答案 0 :(得分:0)

您可以使用 File 创建文件,但这只是创建一个文件。要写入文件,可以使用 PrintWriter 。下面是代码:

import java.io.File; // importing File class
import java.io.PrintWriter; // importing PrintWriter class


public class TextFileWritingExample2 {
public static void main(String[] args) throws Exception{

    java.util.Scanner sc=new java.util.Scanner(System.in);

    // creating a .txt file
    File createFile=new File("myFile.txt");
    // writing to the file created above
    PrintWriter writeFile=new PrintWriter(createFile);

    // asking for 4 names, you could change it in anyway you want
    for (int i = 0; i < 4; i++) {

        System.out.println("Enter name: ");
        String name = sc.nextLine();
        writeFile.println(name);
    }

     //**DO NOT FORGET TO CLOSE YOU WRITER** 
    writeFile.close();

  }
}

答案 1 :(得分:0)

好吧,您可以尝试FileOutputStream写入文件,如下所示:

try{
FileOutputStream out = new FileOutputStream(createFile, true);
out.writeUTF(name.getBytes());
}catch(Exception e){System.out.println(e);}