用Java写文件

用Java写文件,java,file-io,Java,File Io,我正在尝试编写一个简单的方法来将文档保存到文件中(覆盖该文件以前的任何内容)。不幸的是,我的实现似乎不起作用。我在我的文档中调用它,无论出于何种目的,它都是一个字符串数组。我要做的是写入数组的内容,数组中的每个值都有一行,第一行的[0]位置的值,第二行的[1]位置的值。我该怎么办 这是我迄今为止的实施情况: public void save() { try { PrintWriter outputFile = new

我正在尝试编写一个简单的方法来将文档保存到文件中(覆盖该文件以前的任何内容)。不幸的是,我的实现似乎不起作用。我在我的文档中调用它,无论出于何种目的,它都是一个字符串数组。我要做的是写入数组的内容,数组中的每个值都有一行,第一行的[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);
      }

}

如果
a
是字符串数组

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

将逐行将数组打印到
outputFile

数组的迭代器,并写入当前元素

    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++;
     }
String文档[]={“String1”、“String2”、“String3”};
PrintWriter输出文件=
新的PrintWriter(新的BufferedWriter(新的FileWriter(docName)));
int lineNo=1;
for(int i=0;i
我可以这样写:

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();
        }
    }
}

我在你的代码中没有看到任何实际内容,所以我添加了一些。我不知道有行号的文件是多么有趣。如果愿意,您可以修改它以使其有所不同。

不会发生任何事情,也不会返回任何错误!这就是为什么我如此困惑的原因!:)因为它在循环--
intlineno=1时从不进入;while(lineNo!=lineNo)//始终为FALSE
这是调试器可以很快向您显示的内容。
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();
        }
    }
}