【发布时间】:2014-11-06 17:39:45
【问题描述】:
我的项目是接收并读取一个文件,然后将其内容加载到一个数组中,让用户更改它并从中查找内容。不过我的问题是,当我去搜索数组时,它总是会打印出内容以及存储在内存中的内容。我不知道如何阻止它,因为我不知道那是什么东西。这是它通过 Directory1@27391d 打印的内容。
import java.io.File;
import java.io.FileNotFoundException;
import java.util.*;
public class Directory1{
private int size=0;
private String[] dval;//Sting Array
public Directory1(String directoryFileName){
int size=0;//counter for the array Size
int ct=0;//counter
dval = new String[size];//New String array
File file= new File(directoryFileName);
try{
Scanner insert = new Scanner(file);
Scanner populate= new Scanner(file);//Scans File
//Counts the amount of lines to get array size
while(populate.hasNextLine()){
String i= populate.nextLine();
size++;
}
dval= new String[size];
//Inserts values into the array
for(int i=0;i<dval.length;i++){
String j= insert.nextLine();
dval[ct]= j;
System.out.println(dval[ct]);
ct++;
}
}catch(FileNotFoundException e) {
e.printStackTrace();
}
}//End Constructor
} 当我使用它初始化它时,它总是打印出目录中的名称,但也会打印出 记忆中的东西。
public class Directory{
public static void main(String[] args){
Directory1 direct= new Directory1("directory.txt");
System.out.println(direct);
}
}
【问题讨论】:
-
一方面,数组在 Java 中不可调整大小;那么,你为什么不直接使用
Files.readAllLines()?
标签: java arrays memory java.util.scanner