将java方法打印到文本文件

Printing a java method to a text file

本问题已经有最佳答案,请猛点这里访问。

嘿,我想运行我的Java类,每次运行它都会把控制台输出打印到桌面上的一个新的文本文件。我知道我的语法在方法上有点奇怪,但我的思想就是这样工作的。我尝试将输出更改为字符串变量,以便直接将其打印到新的文本文件中,但这不起作用。为了方便起见,我删除了所有控制台文本代码。所以基本上我的问题是,当我运行这个时,我如何将它打印到一个新的文本文件?(我为我自己的任何张贴错误道歉,因为这是我在这个网站上的第一篇文章,我不知道典型的格式)所以我正在编辑这篇文章,因为我被否决了,因为有人认为这是一个复制品问题…我没有声明这一点,但是我知道如何通过Java来生成文件,但是我想让方法的输出被打印到一个新的文本文件中,而不仅仅是硬代码。抱歉给您带来不便。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
public class Main {
 public static void main(String[] args){

     addHash();
 }

 public static void addHash() {
     String outString ="#";
     for (int maxRun = 0; maxRun <= 1000; maxRun++) {
         for (int y = 0; y <= 10; y++) {
             for (int x = -1; x <= y; x++) {

                 System.out.print(outString);
             }
             outString +="#";
             System.out.println("");


         }

         for (int y = 10; y >= 0; y--) {
             for (int x = 0; x <= y; x++) {
                 System.out.print(outString);
             }
             outString = outString.substring(0, outString.length() - 1);
             System.out.println("");


         }
     }
 }
}


为了始终在新文件中发布,可以使用java.util.uuid。完整流程如下:

  • 使用UUID.randomUUID()生成uuid,并将此uuid视为文件名
  • 检查文件名是否已经存在于特定位置(比如桌面)
  • 如果存在,请转到步骤1。如果不存在,请转到步骤4
  • 你有你唯一的文件名

  • 在命令提示下运行程序时放置系统输出

    编译:javac Main.java

    运行:java Main > stacktrace.txt

    这将负责将控制台输出写入文件。


    无论您想显示和写入文件的内容是什么,我们假设内容是保存它的字符串变量。现在,您可以按照此方法将这些内容写入文件。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    public static void main(String[] args) {
            try {
                String content ="This is the content to write into file";

                File file = new File("/users/mkyong/filename.txt");

                // if file doesnt exists, then create it
                if (!file.exists()) {
                    file.createNewFile();
                }

                FileWriter fw = new FileWriter(file.getAbsoluteFile());
                BufferedWriter bw = new BufferedWriter(fw);
                bw.write(content);
                bw.close();

                System.out.println("Done");

            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    此代码将为您提供所需的输出。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.PrintStream;

    class WriteToFile {
    public static void main(String[] args) throws FileNotFoundException {
        String fileName = generateFileName();
        addHash(fileName);
    }

    public static void addHash(String file) throws FileNotFoundException {
        PrintStream out = new PrintStream(new FileOutputStream(file));

        String outString ="#";
        for (int maxRun = 0; maxRun <= 1000; maxRun++) {
            for (int y = 0; y <= 10; y++) {
                for (int x = -1; x <= y; x++) {

                    System.setOut(out);
                    System.out.print(outString);
                }
                outString +="#";
                System.setOut(out);
                System.out.println("");

            }

            for (int y = 10; y >= 0; y--) {
                for (int x = 0; x <= y; x++) {
                    System.out.print(outString);
                }
                outString = outString.substring(0, outString.length() - 1);
                System.out.println("");

            }
        }
    }
    //creating filename
    public static String generateFileName() {
        int i = 0;
        String filename ="D:\\TempFile"; //it will be stored inside D drive,you can change drive value according to your need.
        File f = new File(filename);
        while (f.exists()) {
            i++;
            filename ="D:\\TempFile";
            filename += Integer.toString(i);
            f = new File(filename);
        }
        return filename;
    }
    }