【问题标题】:Writing an array of strings to a file - one line?将字符串数组写入文件 - 一行?
【发布时间】:2014-04-07 12:08:44
【问题描述】:

这是一个示例,我从文件中读取行作为字符串以将整个文件作为字符串数组:

String[] ArrayOfStrings = (new Scanner( new File("log.txt") ).useDelimiter("\\A").next()).split("[\\r\\n]+");

我有任何类似的方法可以写回文件:

something_that_writes_into_file(ArrayOfStrings)?

我知道PrintWriterBuffer 和其他使用循环的东西。

我的问题具体是关于更紧凑的东西,比如说 - 单线解决方案?

【问题讨论】:

    标签: java arrays string file-io


    【解决方案1】:

    使用Apache Commons IOApache StringUtils

    FileUtils.writeStringToFile(new File(theFile), StringUtils.join(theArray, delimiter));
    

    【讨论】:

      【解决方案2】:

      这是可以做到的。

      for(int i = 0; i < observation.length; i++)
      {
          try(BufferedWriter bw = new BufferedWriter(new FileWriter("birdobservations.txt", true)))
          {
              String s;
              s = observation[i];
              bw.write(s);
              bw.flush();
          }
          catch(IOException ex)
          {
              //
          }
      }
      

      之前讨论过同样的问题,请参考下面的链接。 Writing a string array to file using Java - separate lines

      【讨论】:

        【解决方案3】:

        在 Java8 中可能会使用 Streams:

        File file = new File("log.txt");
        FileWriter out = new FileWriter(file);
        
        // reading
        String[] arrayOfStrings = (new Scanner(file).useDelimiter("\\A").next()).split("[\\r\\n]+");
        
        // writing
        Stream.of(arrayOfStrings).forEach(e -> {try {out.append(e);} catch (IOException e1) {e1.printStackTrace();}});
        

        当然,这是一种非常糟糕的风格,我只是这样写的,因为您要求使用“1-liner”。实际上它会这样做:

        Stream.of(arrayOfStrings).forEach(e -> {
            try {
                out.append(e);
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        });
        

        【讨论】:

          猜你喜欢
          • 2011-08-18
          • 1970-01-01
          • 1970-01-01
          • 2011-10-24
          • 2011-08-26
          • 2013-02-02
          • 2012-07-29
          • 1970-01-01
          相关资源
          最近更新 更多