将结果保存到文本文件

Posted

技术标签:

【中文标题】将结果保存到文本文件【英文标题】:Saving results to a text file 【发布时间】:2014-02-06 17:25:29 【问题描述】:

我目前正在做一个掷骰子项目,并希望将我的项目保存为 .txt 或 .pdf 文件,以便在 Excel 中绘制它。我刚刚在计算机科学课上学会了如何将程序保存为文件,但有时我很难理解我的教授。有人能指出我遗漏了什么并可能稍微解释一下这个概念吗?我试图用谷歌搜索某种解释,但我需要的只是关于如何将其保存到文件的准系统解释。

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Random;

import javax.swing.JOptionPane;

public class Lab1 

    private static int N = 0;
    private static int M = 0;
    private static Random rnd = new Random();   
    private final static int FACENUMBER = 6;
    static String output = "output.txt";
    static File file = new File(output);

    public Lab1()

    

    public static void main(String[] args) 

        N = Integer.parseInt(JOptionPane.showInputDialog("How many dice would you like to roll?"));
        System.out.println("Dice: "+N);

        M = Integer.parseInt(JOptionPane.showInputDialog("How many times would you like to roll?"));
        System.out.println("Rolls: "+M);

        System.out.println();

        int total[] = new int[(M)+1];

        for (int roll=1; roll<=M; roll++)
            total[roll] = rnd.nextInt((FACENUMBER-1)*N)+N;
        

        System.out.printf("%3s%12s\n", "Rolls","    Sum of Rolls");

        for(int k=1; k<total.length; k++)

            System.out.printf("%3s%12s\n", k, total[k]);
        
        try
        BufferedWriter writer = new BufferedWriter(new FileWriter(file));
        writer.write(output);
        writer.close();

        catch(IOException e)
            System.out.println("Can't open "+output);
            return;
        
    

【问题讨论】:

您的意思是要将骰子结果保存到文件中吗?目前这会创建一个名为 output.txt 的文件,其中包含 output.txt 是的,抱歉我没有具体说明。我想将结果保存到文件中。 【参考方案1】:

当您尝试写入 writer 时,您尝试将输出作为变量传递:

try
        BufferedWriter writer = new BufferedWriter(new FileWriter(file));
        writer.write(output);
        writer.close();

但是,输出是您的文本文件。

所以你需要创建一个 String 变量来获取你的 for 循环的结果:

for(int k=1; k<total.length; k++)

            System.out.printf("%3s%12s\n", k, total[k]);
        

相反,您可以使用以下内容:

String yourString=""; //Empty string
    for(int k=1; k<total.length; k++)

               yourString=yourString + "%3s%12s\n" + k + total[k];
   

然后代替使用:

writer.write(output)

使用:

writer.write(yourString);

【讨论】:

以上是关于将结果保存到文本文件的主要内容,如果未能解决你的问题,请参考以下文章

vbscript 将识别结果保存到文本文件

如何将我的网页抓取结果保存到美丽汤中的文本文件中?

将内容输入到文本中读取文件将输出结果保存到文件中计算程序跑的时间(c++)

使用带有保存对话框的 java 将内容导出到文本文件

将 RDD 保存到 Scala 中的文本文件

在使用bat 批处理 时将运行结果显示并保存到文件中 echo