Java 如何设计保存/打印的文件?

Java 如何设计保存/打印的文件?,java,file-io,Java,File Io,我已经做了一个基本的统计分析程序,它扫描一个.txt文件中的测试分数,然后将分数映射到一个表中。然后,该程序可以运行数据关联算法,并将突出显示分数中的异常值,这些异常值保存在表格中 我有一个名为writeFile()的方法,可以将报表保存到.txt文件中,其工作原理类似于System.out.println() 我发现我可以使用table.print()打印格式化的表格 我正在尝试设计一个自定义输出,这样我就可以保存和打印一个格式化的和设计好的文件输出,类似于你在MicrosoftWord中可以

我已经做了一个基本的统计分析程序,它扫描一个.txt文件中的测试分数,然后将分数映射到一个表中。然后,该程序可以运行数据关联算法,并将突出显示分数中的异常值,这些异常值保存在表格中

我有一个名为writeFile()的方法,可以将报表保存到.txt文件中,其工作原理类似于System.out.println()

我发现我可以使用table.print()打印格式化的表格

我正在尝试设计一个自定义输出,这样我就可以保存和打印一个格式化的和设计好的文件输出,类似于你在MicrosoftWord中可以做的,但是用硬编码。根据我在研究中发现的情况,一个.txt文件可以不包含任何格式。是否有一种格式可以让我更好地控制报告的设计?我想包括表格和文本,以及有控制的字体,颜色,间距等

还有一种方法可以自定义正在打印的内容,例如指定的文件吗

根据我在研究中发现的情况,一个.txt文件可以不包含任何格式

你说得对

是否有一种格式可以让我更好地控制报告的设计

是的,评论中提到了一些,但是HTML似乎符合您的需要。您可以将HTML与CSS结合使用来执行所有您想要的格式设置。作为奖励,您可以使报告在web浏览器(任何web浏览器!)中弹出以供用户查看

HTML的缺点是,尽管它非常简单(而且在web资源中有很好的文档记录),但它在显示方面比存储方面更为用户友好。因此,如果您主要希望显示报告,而不太关心用户保存、存档、传输或打印报告,那么HTML是一个很好的选择

但是,如果对报表执行这些操作非常重要,并且可以让用户处理PDF,那么您可能会更喜欢PDF格式,它更复杂,更难通过编程生成,并且不提供那么多令人愉快的显示选项,但它擅长于存储和打印

根据我在研究中发现的情况,一个.txt文件可以不包含任何格式

你说得对

是否有一种格式可以让我更好地控制报告的设计

是的,评论中提到了一些,但是HTML似乎符合您的需要。您可以将HTML与CSS结合使用来执行所有您想要的格式设置。作为奖励,您可以使报告在web浏览器(任何web浏览器!)中弹出以供用户查看

HTML的缺点是,尽管它非常简单(而且在web资源中有很好的文档记录),但它在显示方面比存储方面更为用户友好。因此,如果您主要希望显示报告,而不太关心用户保存、存档、传输或打印报告,那么HTML是一个很好的选择


但是,如果在报表中执行这些操作非常重要,并且可以让用户处理PDF,则您可能更喜欢PDF格式,因为PDF格式更复杂,无法通过编程生成,并且不提供那么多令人愉快的显示选项,但是它在存储和打印方面非常出色。

您需要使用支持这种格式的文件格式。在我看来,PDF可能是一个不错的选择。考虑使用或。或打印HTML,或降价,或疯狂地去做LaTex@cricket_007打印HTML是指类似于
System.out.println()的内容吗
“无法创建文件”
很可能是谎言。不要对自己撒谎。当您遇到异常时,请打印该异常,而不是打印您自己设计的无用消息。@EJP感谢您的输入!是否仅使用
e.printStackTrace()
打印异常?您需要使用支持这种格式的文件格式。在我看来,PDF可能是一个不错的选择。考虑使用或。或打印HTML,或降价,或疯狂地去做LaTex@cricket_007打印HTML是指类似于
System.out.println()的内容吗
“无法创建文件”
很可能是谎言。不要对自己撒谎。当您遇到异常时,请打印该异常,而不是打印您自己设计的无用消息。@EJP感谢您的输入!我是否仅使用
e.printStackTrace()
打印异常?
    public void writeFile(File file, String fileName)
    {
        try
            {
            PrintWriter writer = new PrintWriter(file + "\\" + fileName + ".txt", "UTF-8);

            //This is where all of the report info is added    
            writer.println("report data");
            writer.println("more report data");

            writer.close();
            }
        catch(Exception e)
            {
            System.out.println("could not create file");
            }
    }