小编bas*_*ter的帖子

重新使用变量名称来引用.循环中的对象...走出循环......我的对象在哪里?

任何人都可以解释为什么这不会编译?这个循环不断移动ref.'人'到一个新创建的对象,这似乎工作正常.在循环结束时,从文件读入的最后一行应该由'person'引用,并且它的方法应该可以在此循环之外访问,对吧?

while ((line = file.readLine()) != null) {
    Person person = new Person(line);
    //do
}
System.out.println(person.getSmoker());
Run Code Online (Sandbox Code Playgroud)

编译器输出:

Query.java:29: cannot find symbol
symbol  : variable person
location: class Query
            System.out.println(person.getSmoker());
                               ^
Run Code Online (Sandbox Code Playgroud)

答案必须是否定的,但我无法弄清楚为什么(我认为我的对象/堆等理解正在某处)

谢谢你的帮助

java

1
推荐指数
1
解决办法
215
查看次数

文件大小缓存和Java中文件大小的高效检索

我需要确定一个非常大的字符编码文件的大小.读取该文件需要花费大量时间.

我的理解是,当首次创建/修改文件时,大小会被缓存,因此操作系统可以在请求大小时(例如,文件管理器)快速检索该值.(例如,在win explorer中打开大文件的属性对话框时似乎很快)

假设以上情况属实,可以用Java检索吗?我原以为length()读取文件来确定大小......或者它实际上是否获得了这个缓存的大小?或者,File对象的创建是否会读取/检索缓存的大小?

我自己的研究还没有能够回答这些问题.

我理解我会得到一些帮助

谢谢

java file filesize

1
推荐指数
2
解决办法
966
查看次数

String boolean value> Boolean,始终为False!

我正在读取一个csv文件并从每行的字段创建一个Person对象,一行代表一个人.正在读入的字符串放在一个数组中,然后将数组元素指定为属性.

通过在这段代码之前和之后放置print语句,我发现'smoker'属性被设置为false,而不管数组元素的'true'或'false'字符串值.

if(person_array[7] == "true") {this.smoker = true;}
else {this.smoker = false;}
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

谢谢

伊恩

java

0
推荐指数
2
解决办法
1475
查看次数

标签 统计

java ×3

file ×1

filesize ×1