java - 为什么我的 bufferedReader 从文本文件中读取 `java.lang.String;@70177ecd` ?

标签 java string bufferedreader

我有一个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是一个字符串数组。您需要调用lineFromFileToCheck[i]来打印其中的字符串

改变这个

for(i = 0; i < lineFromFileToCheck.length; i++){
        System.out.println(lineFromFileToCheck);

到此

for(i = 0; i < lineFromFileToCheck.length; i++){
        System.out.println(lineFromFileToCheck[i]);

关于java - 为什么我的 bufferedReader 从文本文件中读取 `java.lang.String;@70177ecd` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27468131/

相关文章:

python - 比较多个字符串以查找 'average'/最常见的字符串

PHP strtotime() 函数使用 "1-January-2013"关闭

java - 如何使用BufferedReader一次又一次地读取同一个txt文件?

java - 在 Java 中读取文件并对其进行标记

Java类实现反射接口(interface)

java - IChoiceRenderer的使用

python - 翻译()在python错误中只接受一个参数(给定2个)

java - BufferedReader readLine 返回 null

java - java中什么时候使用OR,什么时候使用AND

java - 为什么在类路径规范中找不到 jar 文件? (来自 Oracle 的 FileChooserDemo)