如何使用Printwriter将字符串数组写入java中的文本文件?

如何使用Printwriter将字符串数组写入java中的文本文件?,java,arrays,string,file,text,Java,Arrays,String,File,Text,我需要帮助使用Printwriter将数组对象的一些内容(以下是我正在使用的两个数组示例)写入文本文件。有什么想法吗?我是初学者,所以越简单越好,谢谢 Astronauts[0][0] = new Passengers(-1, "", 1, 0, 0, "", "", 0, "", "", "", "", ""); Astronauts[0][1] = new Passengers(0, "Pilot", 2424, 14, 0, "Bruce", "Banner", 0, "678-884

我需要帮助使用Printwriter将数组对象的一些内容(以下是我正在使用的两个数组示例)写入文本文件。有什么想法吗?我是初学者,所以越简单越好,谢谢

Astronauts[0][0] = new Passengers(-1, "", 1, 0, 0, "", "", 0, "", "", "", "", ""); 

Astronauts[0][1] = new Passengers(0, "Pilot", 2424, 14, 0, "Bruce", "Banner", 0, "678-884-6325", "Mom", "678-884-6323","","");

Astronauts[0][2] = new Passengers(0, "Pilot", 1248, 3, 0, "Sally", "Forth", 0, "678-921-1135", "Hannah", "678-921-1130","","");


 Astronauts[1][0] = new Passengers(-1, "", 2, 0, 0, "", "", 0, "", "", "", "", "");

Astronauts[1][1] = new Passengers(0, "Pilot", 1022, 55, 0, "Buz", "Aldrin", 0, "404-014-4553", "June", "404-014-4555","","");

Astronauts[1][2] = new Passengers(0, "Pilot", 2813, 8, 0, "Alice", "Dyer", 0, "678-884-6325", "Mom", "678-884-6323","","");

我不确定是否正确理解了您的问题,因为将数组的内容写入文件非常简单:

String[] arr = {"a", "b", "c"};
try {
    PrintWriter pw = new PrintWriter(new FileWriter("output.txt"));
    pw.println(Arrays.toString(arr));
    pw.flush();
    System.out.println("Finished");
} catch (IOException e) {
    e.printStackTrace();
}
[编辑]

我意识到我可能没有解决你的整个问题。如果您想知道如何编写数组中包含的对象的所需特征,可以重写自定义类的方法:

class A {
    public static void main(String[] args) {
        B[] bs = {new B("a", "b"),
                  new B("c", "d"),
                  new B("e", "f"),
                  new B("g", "h")};

        try {
            PrintWriter pw = new PrintWriter(new FileWriter("output.txt"));
            for (B b : bs) {
                pw.println(b);
            }
            pw.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }
        System.out.println("Finished");
    }
}

class B {
    private String prop1;
    private String prop2;

    public B (String prop1, String prop2) {
        this.prop1 = prop1;
        this.prop2 = prop2;
    }

    @Override
    public String toString() {
        return this.prop1 + " " + this.prop2;
    }
}

PrintWriter
允许使用
字符串
,因此您可以重写
类中的
toString()
方法,然后在一维或二维数组上迭代:

顺便说一下,变量名应该以小写字符开头

  • 一维

    for (int i = 0; i < astronauts.length; i++) { 
        pw.print(Arrays.toString(astronauts[i]); 
    } 
    
    for(int i=0;i
  • 二维

    for (int i = 0; i < astronauts.length; i++) {
        for (int j = 0; j < astronauts[i].length; i++) {
            pw.print(astronauts[i][j]); 
        } 
    } 
    
    for(int i=0;i<1.length;i++){
    对于(int j=0;j

别忘了
flush()
close()
PrintWriter
以下是您可能想要的方法

String twoDArray[][] = {{"one","two"},{"one","two"},{"one","two"}};
    String filePath = "C:/Users/arjun.lajpal/Desktop/dummyFile.txt";
    PrintWriter writer = null;
    try {
        writer = new PrintWriter(filePath);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    writer.printf("%20s%20s","Astraunauts","Passengers");
    writer.println();
    for(int i=0;i<twoDArray.length;i++){
        for(int j=0;j<twoDArray[i].length;j++)
            writer.printf("%20s",twoDArray[i][j]);

        writer.println();

        }
    writer.flush();
    writer.close();
String twoDArray[]]={{{“一”,“二”},{“一”,“二”},{“一”,“二”},{“一”,“二”};
String filePath=“C:/Users/arjun.lajpal/Desktop/dummyFile.txt”;
PrintWriter=null;
试一试{
writer=新的PrintWriter(文件路径);
}catch(filenotfounde异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
writer.printf(“%20s%20s”,“未经审核”,“乘客”);
writer.println();

对于(int i=0;i,因为您的数组内容都属于同一类
Passengers
,如果您对默认的array.toString格式不满意,我会在
Passengers
中创建一个
toString()
方法,返回所需的字符串表示形式

然后:

注意:正如其他人提到的,我将
宇航员
变量重命名为小写
宇航员
。我还将
乘客
类重命名为
乘客

编辑:使用上述代码,输出文件应显示在运行程序的工作目录中。或者,您可以提供完整的文件路径,如
C:/Users/Me/directory/output.txt
,但在这种情况下,您需要确保目录路径已经存在

另一种选择是修改代码以自动为您创建路径:

    File file = new File ("C:/Users/Me/directory/output.txt");
    file.getParentFile().mkdirs();
    PrintWriter printWriter = new PrintWriter(file);

好的,我使用了这段代码,但对整个文件进行了修改,但仍然没有看到文本文件。是否应该自己弹出一个文件?是的,上面的代码应该为您创建文件。我编辑了答案,并对此进行了一些解释。希望对您有所帮助。
    File file = new File ("C:/Users/Me/directory/output.txt");
    file.getParentFile().mkdirs();
    PrintWriter printWriter = new PrintWriter(file);