Запись в файл с Java - PullRequest
       0

Запись в файл с Java

0 голосов
/ 26 февраля 2011

Я пытаюсь написать простой метод сохранения моего документа в файл (перезаписывая любое предыдущее содержимое файла.) К сожалению, моя реализация, похоже, не работает.Я называю это своим документом, который, по сути, является массивом String.Я хотел бы написать содержимое моего массива с отдельной строкой для каждого значения в массиве, значением в позиции [0] в первой строке и значением для [1] во второй.Как мне поступить об этом?

Это моя реализация до сих пор:

  public void save()
   { 
      try
      {
         PrintWriter outputFile = 
            new PrintWriter(new BufferedWriter(new FileWriter(docName)));
         int lineNo = 1;

         while (lineNo != lineNo) // CHANGE THIS!!!
         {  outputFile.println(" ~ ");
            lineNo++;
         }
         outputFile.flush();
      }
      catch (Exception e)
      {
         System.out.println("Document: Touble writing to "+docName);
         System.exit(1);
      }

}

Ответы [ 4 ]

1 голос
/ 26 февраля 2011

Если a - это массив строк,

for (String s : a)
     outputFile.println(s);

будет выводить массив построчно в outputFile.

0 голосов
/ 26 февраля 2011

Я мог бы написать это более примерно так:

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.PrintStream;

/**
 * FileDemo
 * @author Michael
 * @since 2/26/11
 */
public class FileDemo
{
    public static void main(String[] args)
    {
        try
        {
            FileDemo fd = new FileDemo();
            fd.save("out/test.txt", args);
        }
        catch (FileNotFoundException e)
        {
            e.printStackTrace();
        }

    }

    public void save(String filePath, String [] lines) throws FileNotFoundException
    {
        PrintStream ps = null;

        try
        {
            ps = new PrintStream(new FileOutputStream(filePath));
            int lineNum = 1;
            for (String line : lines)
            {
                ps.printf("%5d %s\n", lineNum++, line);
            }
        }
        finally
        {
            close(ps);
        }
    }

    public static void close(PrintStream ps)
    {
        if (ps != null)
        {
            ps.flush();
            ps.close();
        }
    }
}

Я не увидел никакого реального контента в вашем коде, поэтому я добавил его.Я не знаю, как файл с номерами строк был очень интересным.Вы могли бы изменить это, чтобы сделать это по-другому, если хотите.

0 голосов
/ 26 февраля 2011
// myDoc is the "array of string"
foreach (String line : myDoc) {
    outputFile.println(line);
}
0 голосов
/ 26 февраля 2011

Итератор по массиву и запись текущего элемента.

    String document[] = {"String1","String2","String3"};
    PrintWriter outputFile = 
        new PrintWriter(new BufferedWriter(new FileWriter(docName)));
     int lineNo = 1;

     for(int i = 0; i < document.length; i++)
     {  outputFile.println(document[i]);
        lineNo++;
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...