Java 在另一个方法中使用数组

Java 在另一个方法中使用数组,java,arrays,Java,Arrays,我正在从一个文件中读取一些数据并将其存储在一个数组中。我想知道是否可以用其他方法访问存储文件数据的阵列 import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Cards { private static final String Cards_CARDS_DATA_FILE = "./cards.txt"; public char[]

我正在从一个文件中读取一些数据并将其存储在一个数组中。我想知道是否可以用其他方法访问存储文件数据的阵列

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;


public class Cards {
    private static final String Cards_CARDS_DATA_FILE = "./cards.txt";
    public char[] cardStore;

    public void loadCards() throws IOException {


        FileReader readingFile = new FileReader(Cards_CARDS_DATA_FILE);
        BufferedReader File = new BufferedReader(readingFile);
        for (String line; (line = File.readLine()) != null;) {



//copying the stuff in cards.txt to an array. Printed out just to check it actually works.
            cardStore = line.toCharArray();
            System.out.println(cardStore);

        }

        File.close();

    }

    public void tester() throws IOException {

        System.out.println(cardStore);

    }
}

您可以从类的任何实例范围的上下文中访问和打印实例字段

现在,要打印其填充的内容,您必须首先填充它,这是在loadCards中完成的,因此该方法需要成功调用,即在i/O方面

只要loadCards被成功调用,即文件操作和数组填充成功,测试人员就不会打印反映文件内容的cardStore的实际内容

请注意,您要使用Arrays.toString打印数组的可读表示形式。

简短回答: 对于同一类中的方法,类实例变量始终是可访问的

一些额外的信息

}

这样您就得到了正确的封装。不首选公共变量 您现在也可以在该类之外访问cardstore

补充:

可以/应该更像这样:

public void tester() throws IOException {
    for(char card:cardStore){
        System.out.println("test info: " + card);
    }
}
第一种方法是打印char[]对象的hashcode,而不是其中存储的数据。如果您打算打印数据。如果你只想看看它是否被填满了,那就更容易了

public void tester() throws IOException {
    if(cardStore != null && cardStore.length > 0){
        System.out.println("test info: cardStore has " + cardStore.length + " rows.");
    }
}

这是信用卡店吗?System.out.printlncardStore有什么问题?当然有可能,在这里发帖比发帖容易当你的输入文件中有多行时,你的数组将只包含最后一行对不起,你错了。即使未调用loadCards,您也可以在任何实例方法中访问cardStore。不过,您可以在未调用loadCards的情况下打印cardStore。是的,我认为这里更广泛的情况是OP想知道他们是否正在打印内容,而不是空值。我知道,但我的观点是,您可以更清楚地回答。@m0skit0足够公平。完全重写。
public void tester() throws IOException {
    for(char card:cardStore){
        System.out.println("test info: " + card);
    }
}
public void tester() throws IOException {
    if(cardStore != null && cardStore.length > 0){
        System.out.println("test info: cardStore has " + cardStore.length + " rows.");
    }
}