无法在java中执行文件IO
我是java的初学者,为postfix Evaluation编写了以下问题。尽管该程序对于控制台IO运行良好。它在使用文件时出现问题。我试图在文件无法在java中执行文件IO,java,file-io,bufferedreader,Java,File Io,Bufferedreader,我是java的初学者,为postfix Evaluation编写了以下问题。尽管该程序对于控制台IO运行良好。它在使用文件时出现问题。我试图在文件output00.txt中获取程序的答案,但该文件为空。 这是代码。我遗漏了与这个问题无关的方法 public static void main(String[] args) throws Exception { FileReader input = new FileReader("input00.txt"); Buff
output00.txt
中获取程序的答案,但该文件为空。
这是代码。我遗漏了与这个问题无关的方法
public static void main(String[] args) throws Exception {
FileReader input = new FileReader("input00.txt");
BufferedReader in = new BufferedReader(input) ;
FileWriter output = new FileWriter("output00.txt");
BufferedWriter out = new BufferedWriter(output);
while (true) {
String lineReader = in.readLine();
if (lineReader==null) {
break;
}
Stack<String> m_Stack = new Stack<String>();
m_Stack.addAll(Arrays.asList(lineReader.trim().split("[ \t]+")));
if (m_Stack.peek().equals("")){
continue;
}
try {
double finVal = evaluateRPN(m_Stack);
if (!m_Stack.empty()) {
throw new Exception();
}
out.write(finVal + "\n");
}
catch (Exception e) {System.out.println("error");}
}
}
你必须关闭这条小溪。请尝试退出。关闭()您必须关闭流。请尝试
out.close()
您需要调用out.flush()
来刷新写入文件的内容,或者调用out.close()
,它将自动刷新已缓冲的内容。实际上,无论如何,您都应该调用close()
,因为这是一种很好的做法,如果您有办法退出while()循环的话。您需要调用out.flush()
来刷新写入文件的内容,或者调用out.close()
来自动刷新缓冲的内容。实际上,无论如何都应该调用close()
,因为这是一种很好的做法,如果有办法退出while()循环。可以尝试在write语句之后添加out.flush()
。然后它会将缓冲区写入文件。您可以尝试在write语句之后添加out.flush()
。然后它会将缓冲区写入文件。是否在正确的位置查找输出文件?尝试删除并查看是否重新创建它。代码看起来不错,只是没有关闭输出流。顺便说一句,这是一个家庭作业吗?你在正确的地方寻找输出文件吗?尝试删除并查看是否重新创建它。代码看起来不错,只是没有关闭输出流。顺便说一句,这是一个家庭作业吗?答案很好,但在关闭流时有点太放松了。无论如何,您必须调用close()
——不应该。因为这是唯一有效的方法。循环中有一个catch块,它除了输出错误之外似乎什么也不做,然后允许循环再次运行。您应该使用catch来包装循环,并使用out.close()方法添加一个“finally”,以确保您进行清理。答案很好,但在关闭流时有点过于轻松。无论如何,您必须调用close()
——不应该。因为这是唯一有效的方法。循环中有一个catch块,它除了输出错误之外似乎什么也不做,然后允许循环再次运行。您应该使用catch来包装循环,并使用out.close()方法添加一个“finally”,以确保进行清理。
8 9 +
7 6 -
7 7 * 9 -