使用Java写入文件
问题描述:
我正在尝试编写一个简单的方法将我的文档保存到文件中(覆盖此文件的任何以前的内容)。不幸的是,我的实现似乎不起作用。我在我的文档上调用它,这是为了所有意图和目的,一个String数组。我想要做的是编写我的数组的内容,为数组中的每个值分别设置一行,第一行的位置为[0],第二行为[1]。我将如何去做这件事?使用Java写入文件
这是我的执行至今:
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);
}
}
答
遍历数组的迭代器,并写入当前元素。
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++;
}
+0
steveom 2011-02-26 18:24:42
答
如果a
是一个字符串数组,
for (String s : a)
outputFile.println(s);
将阵列行由行打印到outputFile
。
答
// myDoc is the "array of string"
foreach (String line : myDoc) {
outputFile.println(line);
}
答
我可以写更是这样的:
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();
}
}
}
我没有看到你的代码的任何实际内容,所以我加了一些。我没有看到带有行号的文件非常有趣。如果你愿意的话,你可以修改它以使它有所不同。
没有任何反应,也没有错误返回!这就是为什么我很困惑! :) – steveom 2011-02-26 18:22:04
因为它永远不会进入while循环 - 'int lineNo = 1; while(lineNo!= lineNo)// always always FALSE' – Nishant 2011-02-26 18:23:57
这是调试器很快显示给你的东西。 – 2011-02-26 18:36:30