这不是一个具体问题,而是一个广泛的问题。我正在使用格式化程序在 java 之外创建结果文件。
Formatter f = new Formatter(new File("DataResults2"));
出于某种原因,我尝试打印到此文本文件的内容不会出现在 DataResults2 上;但是,我可以让我尝试打印的内容出现在 Eclipse 的控制台上。
System.out.printf("Market Id %d, Contracts %s, Data Points %d, Starting Date %d,
Ending Date %d\n", firstVariable, set.size(), dataPointCounter, firstDateHolder,
lastDateHolder);
f.format("%d, %s, %d, %d, %d, ", firstVariable, set.size(),
dataPointCounter, firstDateHolder, lastDateHolder);
正如我上面所说,System.out.print
将出现在我的控制台上,但 f.format
不会出现在我的文件中。
是的,我确实使用 f.close();
使用格式化程序时会出现哪些问题?为什么控制台会正确打印所有内容,但不会显示文档?
我知道如果没有更多代码,您无法直接回答我的问题,但在代码太长之前我无法向您展示我的整个代码。我只是想知道一些关于寻找什么的建议,我将完成我的计划。谢谢。
斯基特,这有帮助吗?
Iterator itr = set.iterator();
while (itr.hasNext())
{ //while
int contractIDDisplay = (int) itr.next();
if (contractIDDisplay == 1)
{
System.out.printf("%d, %d, %d, %d",contractIDDisplay, monthCounter1, firstDate1, lastDate1);
f.format("%d, %d, %d, %d, ",contractIDDisplay, monthCounter1, firstDate1, lastDate1);
}
最佳答案
最后您需要调用close 。此外,指定字符集将更便于跨计算机移植。
Formatter f = new Formatter(new File("DataResults2"), "Windows-1252",
Locale.US); // Latin-1 on Windows, US, Part of Europe
Formatter f = new Formatter(new File("DataResults2"), "UTF-8",
Locale._US); // International Unicode, US number notation
f.close();
<小时/>
如果这不起作用,则使用文件的绝对路径,可能在用户目录中:
String path = System.getProperty("user.home") + File.separator + "DataResults2.txt";
不需要做像createFile这样的事情。
关于java - 格式化程序错误和问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17148079/