【发布时间】:2015-02-12 14:37:56
【问题描述】:
我有一个 bufferedReader 用于从文本文件中读取文本行,但是,bufferedReader 正在读取的唯一文本行是 [Ljava.lang.String;@70177ecd 我的代码如下:
private static final String dirToWriteFile = System.getProperty("user.dir") + "/VirtualATM.txt"; //File path for main user detail store.
FileInputStream fin = new FileInputStream(dirToWriteFile);
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fin));
String lineFromFile = null;
lineFromFile = bufferedReader.readLine();
String [] lineFromFileToCheck = lineFromFile.split("\\s+");
do{
for(i = 0; i < lineFromFileToCheck.length; i++){
System.out.println(lineFromFileToCheck);
/************* Error because "[Ljava.lang.String;@70177ecd" is being read from file ******************/
if(lineFromFileToCheck[i].matches(cardNumberStr)){
accountNoFound = true;
}
if(accountNoFound == false & i > 10){
break;
}
}
if(accountNoFound == true){
for(j = 0; j < lineFromFileToCheck.length; j++){
if(lineFromFileToCheck[j].matches(pinToCheck)){
pinNoFound = true; //if pin matches exactly what is inputted by user
break;
}
}
lineFromFile = bufferedReader.readLine();
if (lineFromFile != null) {
lineFromFileToCheck = lineFromFile.split("\\s+");
}
}
if(pinNoFound == false & lineFromFile == null){
JOptionPane.showMessageDialog(null, "Error! Invalid input length/type. Try again...", "Error", JOptionPane.ERROR_MESSAGE);
}
if(pinNoFound == true & accountNoFound == true & lineFromFile == null){
break;
}
}while(accountNoFound == false | pinNoFound == false | lineFromFile != null);
fin.close();
bufferedReader.close();
如果有人能提出读者的问题以及[Ljava.lang.String;@70177ecd 的确切含义以及导致BufferedReader 返回的原因,那就太好了!
【问题讨论】:
-
lineFromFileToCheck是一个数组。使用Arrays.deepToString(lineFromFileToCheck)打印其内容。 -
当你打印一个数组时,这就是它打印的内容。它可能更有用,但您需要使用 Arrays.toString(array) 来代替。
标签: java string bufferedreader