Java 意外输出。。。这个输出在任何方面都不是我所期望的。这是什么
我希望给定的代码在这个项目的src文件夹中名为OutFile.txt的文本文件中写入以下内容(该文件的副本存在于项目的主目录中,其他文件夹如src和res也存在于此目录中):Java 意外输出。。。这个输出在任何方面都不是我所期望的。这是什么,java,exception,Java,Exception,我希望给定的代码在这个项目的src文件夹中名为OutFile.txt的文本文件中写入以下内容(该文件的副本存在于项目的主目录中,其他文件夹如src和res也存在于此目录中): Value at: 0 = 0 Value at: 1 = 1 Value at: 2 = 2 但它不会在文件中写入任何内容。并在控制台中给出此输出: 0 0 0 0 0 代码:- package exception_handling_1; //Note: This class won't compile by d
Value at: 0 = 0
Value at: 1 = 1
Value at: 2 = 2
但它不会在文件中写入任何内容。并在控制台中给出此输出:
0
0
0
0
0
代码:-
package exception_handling_1;
//Note: This class won't compile by design!
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
public class ListOfNumbers {
private List<Integer> list;
private static final int SIZE = 3;
public ListOfNumbers () {
list = new ArrayList<Integer>(SIZE);
for (int i = 0; i < SIZE; i++) {
list.add(new Integer(i));
}
}
static PrintWriter out;
public void writeList() {
//PrintWriter out=null;
try{
out = new PrintWriter(new FileWriter("OutFile.txt"));
for (int i = 0; i < SIZE; i++) {
out.println("Value at: " + i + " = " + list.get(i));
}
}catch (Exception e){
System.out.println("IO Exception!");
}finally {
out.close();
}
}
}
包异常处理\u 1;
//注意:这个类不会按设计编译!
导入java.io.FileWriter;
导入java.io.PrintWriter;
导入java.util.ArrayList;
导入java.util.List;
公共类编号列表{
私人名单;
私有静态最终整数大小=3;
公开编号列表(){
列表=新的ArrayList(大小);
对于(int i=0;i
请告诉我为什么我得到这个输出。谢谢。如果使用main方法实现,代码将正常工作
public class testRun{
public static void main (String[] args){
ListOfNumbers list = new ListOfNumbers();
list.writeList();
}
}
如果使用main方法实现,代码将正常工作
public class testRun{
public static void main (String[] args){
ListOfNumbers list = new ListOfNumbers();
list.writeList();
}
}
现在它工作正常,精确到您猜测的输出
package com.prectice;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
public class ListOfNumbers {
private List<Integer> list;
private static final int SIZE = 3;
public ListOfNumbers () {
list = new ArrayList<Integer>(SIZE);
for (int i = 0; i < SIZE; i++) {
list.add(new Integer(i));
}
}
static PrintWriter out;
public void writeList() {
//PrintWriter out=null;
try{
out = new PrintWriter(new FileWriter("OutFile.txt"));
for (int i = 0; i < SIZE; i++) {
System.out.println("Value at: " + i + " = " + list.get(i));
}
}catch (Exception e){
System.out.println("IO Exception!");
}finally {
out.close();
}
}
public static void main (String[] args){
ListOfNumbers list = new ListOfNumbers();
list.writeList();
}
}
package.com.pretice;
导入java.io.FileWriter;
导入java.io.PrintWriter;
导入java.util.ArrayList;
导入java.util.List;
公共类编号列表{
私人名单;
私有静态最终整数大小=3;
公开编号列表(){
列表=新的ArrayList(大小);
对于(int i=0;i
现在,它可以很好地工作,精确到您猜测的输出
package com.prectice;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
public class ListOfNumbers {
private List<Integer> list;
private static final int SIZE = 3;
public ListOfNumbers () {
list = new ArrayList<Integer>(SIZE);
for (int i = 0; i < SIZE; i++) {
list.add(new Integer(i));
}
}
static PrintWriter out;
public void writeList() {
//PrintWriter out=null;
try{
out = new PrintWriter(new FileWriter("OutFile.txt"));
for (int i = 0; i < SIZE; i++) {
System.out.println("Value at: " + i + " = " + list.get(i));
}
}catch (Exception e){
System.out.println("IO Exception!");
}finally {
out.close();
}
}
public static void main (String[] args){
ListOfNumbers list = new ListOfNumbers();
list.writeList();
}
}
package.com.pretice;
导入java.io.FileWriter;
导入java.io.PrintWriter;
导入java.util.ArrayList;
导入java.util.List;
公共类编号列表{
私人名单;
私有静态最终整数大小=3;
公开编号列表(){
列表=新的ArrayList(大小);
对于(int i=0;i
将一些System.out.println(…)
放在您期望某些输出的点上,然后继续放进去,直到您找到一个不能提供预期输出的点。然后从那里找出代码部分不正确的原因。显示更多代码,特别是创建编号列表
并调用writeList()
的代码。如所述,加上启动它的静态主代码,对我来说是正确的。必须有其他一些代码。只有在从未调用过writeList()
或者之后文件被其他内容擦除时,才可能出现这种情况。您应该向我们展示更多。还要注意,如果您对FileWriter
的调用引发异常,那么它将跳转到catch
块,out
仍将为null
;一旦它报告了异常(打印出异常e
,而不仅仅是说“exception”,这会非常有帮助和有用),它将在out
上调用close()
,除了第一个异常之外,还会给您一个NullPointerException
。很好的做法是(就像在那个教程中所做的那样)对out
执行空检查。在期望某些输出的点上输入一些System.out.println(…)
,然后继续输入,直到找到一个不能提供期望输出的点。然后从那里找出代码部分不正确的原因。显示更多代码,特别是创建编号列表
并调用writeList()
的代码。如所述,加上启动它的静态主代码,对我来说是正确的。必须有其他一些代码。只有在从未调用过writeList()
或者之后文件被其他内容擦除时,才可能出现这种情况。您应该向我们展示更多。还要注意,如果您对FileWriter
的调用引发异常,那么它将跳转到catch
块,out
仍将为null
;一旦它报告了异常(打印出异常e
,而不仅仅是说“exception”,这会非常有帮助和有用),它将在out
上调用close()
,除了第一个异常之外,还会给您一个NullPointerException
。在out