下面的代码从文件中读取。该文件包含大约 3000 行,每行有 193 个数字,以空格分隔。
无效读取(){
String fileName = "ocr_train.txt";
String line = null;
float[] vertices = new float[200];
try {
// FileReader reads text files in the default encoding.
FileReader fileReader = new FileReader(fileName);
// Always wrap FileReader in BufferedReader.
BufferedReader bufferedReader = new BufferedReader(fileReader);
while((line = bufferedReader.readLine()) != null) {
//System.out.println(line);
String[] parts = line.split(" ");
for (int i = 0; i < parts.length; i++){
if(parts[i] != null && parts[i].length() > 0){
vertices[i] = Float.parseFloat(parts[i]);
}
}
Points p = new Points(vertices);
System.out.println(p);
full.add(p);
}
bufferedReader.close();
}
在这里,当我尝试打印 p 时,它给了我诸如 Points@10bf683、Points@d322f5 等值 这一步有什么问题吗?
最佳答案
假设 Point 是一个用户定义的类,并且包含对顶点数组的引用,我们需要重写 Point class
中的 toString()
方法(以便 System.out.println()
方法显示一些有意义的值,因为默认值显示对象
的HashCode
)。 toString()
的实现如下所示:
public class Point {
int[] vertices;
//other code
@Override
public String toString(){
if(null != vertices){
return Arrays.toString(vertices);
}else{
return null;
}
}
}
关于java - 读取文件java时获取类地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35857458/