java用multpiple行创建一个文本文件

时间:2017-04-16 22:50:51

标签: java file printing

所以我不确定是否还有其他这样的问题,但从我所看到的,他们似乎都没有帮助我。

所以我有一个字符串,上面写着"你好","美好的一天"和"再见"我声明它像这样

class ArticlesController < ApplicationController
  def show
    @article = Article.find(params[:id])
  end

  def new 
  end

  def create
    @article = Article.new(article_params)
    @article.save
    redirect_to @article
  end

  private
  def article_params
    params.require(:article).permit(:title, :text)
  end
end

现在我想在项目子目录下的一个名为&#34;输出&#34;的文件夹下创建一个txt文件,所以它的目录是user / project1 / output

问题是我希望这个txt文件在一个单独的行上打印每个单词,到目前为止我有以下代码确实生成带有内容字符串的txt文件,但所有内容都在同一行上

String content="hello\n good day\n good bye";

,输出看起来像这样

File file = new File("output1.txt");
FileOutputStream outputStream = new FileOutputStream(file, false);
PrintWriter out = new PrintWriter(outputStream, true);
out.println(content);

我怎么能拥有它,所以txt文件看起来像这样

hello good day food bye

2 个答案:

答案 0 :(得分:0)

不同的平台使用不同的行结尾,但您可以使用正则表达式content分割为\n,如果您在换行符后面有空格,则可以匹配他们也是。另外,您还没有显示关闭PrintWriter的方式 - 我更喜欢try-with-resources。像,

String content="hello\n good day\n good bye";
File file = new File("output1.txt");
try (PrintWriter out = new PrintWriter(new FileOutputStream(
        file, false), true)) {
    for (String line : content.split("\\n\\s*")) {
        out.println(line);
    }
}

答案 1 :(得分:0)

将字符串内容更改为此。

String content = "hello" + System.lineSeparator() + "good day" + System.lineSeparator() + "good bye";

编辑 - 此代码适用于我:

public static void main(String[] args) throws FileNotFoundException {
    String content = "hello" + System.lineSeparator() + "good day" + System.lineSeparator() + "good bye";
    File file = new File("output1.txt");
    FileOutputStream outputStream = new FileOutputStream(file, false);
    PrintWriter out = new PrintWriter(outputStream, true);
    out.println(content);
}