简体   繁体   English

使用Java将输出写入文本文件

[英]writing the output to a text file using Java

I am trying to write a series of line to a text file using Java. 我正在尝试使用Java将一系列代码行写入文本文件。

Code: 码:

File file = new File("file.txt");
FileWriter writer = new FileWriter(file,true);
for (first for loop) {
            for (second for loop) {
                if (condition TRUE){
                    writer.write(element1 + element2.toString()+"\n");
                }
                else {
                writer.write("-"+ element1 + element2.toString()+"\n");
                }
            }
        }

Error: 错误:

Only an empty file is getting created. 仅创建一个空文件。 Please, any suggestions would be helpful 请,任何建议将有所帮助

Replace this: 替换为:

FileWriter writer = new FileWriter(file,true);

with: 与:

BufferedWriter writer = new BufferedWriter(new FileWriter(file,true));

and in the end: 最后:

writer.close();

There is nothing wrong with the snippet you provided. 您提供的代码片段没有任何问题。 The problem could be that, the conditions in your for loops and if statements are never met. 问题可能是, for循环中的conditions以及if语句从不满足。 Thus your code never gets to 因此,您的代码永远不会

writer.write(element1 + element2.toString()+"\\n"); .

So to be able to help on that unless you provide the actual code. 因此,除非您提供实际的代码,否则将能够提供帮助。

Also you must ensure that file.txt exist. 另外,您必须确保file.txt存在。 It would be better if you use an absolute path like C:\\\\Users\\\\YOUNG MILLIE\\\\Documents\\\\file.txt in windows environment. 如果您在Windows环境中使用C:\\\\Users\\\\YOUNG MILLIE\\\\Documents\\\\file.txt这样的绝对路径会更好。

Because i tried with this example and it works fine. 因为我尝试了这个示例,所以效果很好。

        File file = new File("C:\\Users\\YOUNG MILLIE\\Documents\\file.txt");
        FileWriter writer = new FileWriter(file,true);
        for (int i = 0; i <= 100;i++) {
            for (int k = 0; k <= 50;k++) {
                if (i <=50 ){
                    writer.write(k +"\n");
                }
                else {
                    writer.write("-"+ k +"\n");
                }
            }
        }
        writer.close();

Here is how the code should look like and you can substitute your logic wherever applicable. 这是代码的外观,您可以在适用的地方替换逻辑。

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class WriteAFile {

    public static void main(String [] args) {
        String element1="First Element";
        Integer element2=10;
        FileWriter writer = null;

        try {
            writer = new FileWriter(new File("file.txt"), true);

            for (int i=0; i<5; i++) {
                for (int j=0; j<5; j++) {
                    if (true){ //Write the condition here
                        writer.write(element1 + element2.toString()+"\n");
                    }
                    else {
                        writer.write("-"+ element1 + element2.toString()+"\n");
                    }
                }
            }
            writer.close();
        }
        catch (IOException ioe) {
            ioe.printStackTrace();
        }
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM