所以我有2节课。第一个从文件中读取信息并将其存储在2D数组中然后返回它。像这样:
public class Skaitymas{
File f = new File("Events.txt");
private int lines = 0;
private Scanner sc;
private String[][] myArray;
public void skaityti() throws IOException{
BufferedReader reader = new BufferedReader(new FileReader("Events.txt"));
try{
while (reader.readLine() != null){
lines++;
}
reader.close();
}catch (FileNotFoundException e) {
e.printStackTrace();
}
}
public String[][] iMasyva() throws IOException{
sc = new Scanner(new File("Events.txt"));
String linija = null;
int counter = 0;
myArray = new String[lines][5];
for(int i = 0; i<myArray.length; i++){
linija = sc.nextLine().toString();
String[] dabartinesLinijosStringai = linija.split(" ");
for(int j = 0; j<myArray[0].length; j++){
myArray[counter][j] = dabartinesLinijosStringai[j];
}
counter++;
}
return myArray; //The 2D array i wish to return
}
}
在我的另一个类中,我希望初始化一个新的2D数组,它从第一个类中获取返回的2D数组。我创建了第一个类的对象,然后初始化该方法,该方法返回值。像这样:
Skaitymas read = new Skaitymas();
String[][] mas = read.iMasyva();
但是我得到了这个错误:默认构造函数无法处理隐式超级构造函数抛出的异常类型IOException。必须定义显式构造函数
我甚至不知道我是否应该这样做,所以任何帮助都会受到赞赏!
答案 0 :(得分:0)
为什么不抓住IOException而不是把它扔进课堂#34; Skaitymas&#34;构造
try{
while (reader.readLine() != null){
lines++;
}
reader.close();
}catch (FileNotFoundException e) {
e.printStackTrace();
}catch(IOException e)
{
e.printStackTrace();
}