您好我想显示我的txt文件,但可能有问题!有帮助吗?这是我的代码:
public class Display extends Items{
public int countLines(String filename){
int lines = 0; //mporei na metrhsei mexri "int" grammes (~2.1 dis grammes)
try {
// Open the file that is the first command line parameter
FileInputStream fstream = new FileInputStream(filename);
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
lines++;//metrhths grammwn/eggrafwn
}
//close input stream
} catch (Exception e) {//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
return lines;}
public String[] showAllRegisteredLessons(String filename, int size) {
String[] temp = new String[size+1]; //mexri "size" kataxwrhseis ma8hmatwn dld (mege8os "int")
try {
int x = 0;
// Open the file that is the first command line parameter
FileInputStream fstream = new FileInputStream(filename);
// Get the object of DataInputStream
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
//System.out.println(strLine.replace("#", " "));
temp[x] = strLine;
x++;
}
//close input stream
} catch (Exception e) {//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
return temp;
}
public JPanel pinakas(String[] pinaka) {
int sr = 0;
//int ari8mos =0;
String[] COLUMN_NAMES = {"Κωδικός", "Ποσότητα", "Τιμή", "Περιγραφή", "Μέγεθος", "Ράτσα"};
//pio panw mporoume na pros8esoume ws prwto column to "#", wste na deixnei ton ari8mo ths ka8e kataxwrhshs
DefaultTableModel modelM = new DefaultTableModel(COLUMN_NAMES, 0);
JTable tableM = new JTable(modelM);
JPanel mainPanel = new JPanel(new BorderLayout());
mainPanel.add(new JScrollPane(tableM), BorderLayout.CENTER);
Display disp = new Display();
while (pinaka[sr] != null) // !!!!tha ektupwsei kai mia parapanw "/n" logo ths kataxwrhshs prwtou h teleytaiou mahmatos
{
String[] temp5 = disp.lineDelimiter(pinaka[sr],6, "#");
Object[] doge = { temp5[0], temp5[1], temp5[2], temp5[3], temp5[4], temp5[5],temp5[6]};//edw mporoume sthn arxh na valoume to ari8mos gia na fainetai o ari8mos twn kataxwrhsewn
modelM.addRow(doge);
sr++;
//ari8mos++;
}
return mainPanel;
}
并在main()
if(category31=="ΣΚΥΛΟΙ"){
Display disp= new Display();
int numberofline=disp.countLines("Dogss.txt");
String[] tempΜ1 = disp.showAllRegisteredLessons("Dogss.txt",numberofline);
//System.out.println(numberofline);
JOptionPane.showMessageDialog(null, disp.pinakas(tempΜ1), "Καταχωρημένα Kατοικίδια", JOptionPane.PLAIN_MESSAGE);
break;
}
我收到此错误:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 6
at program.Display.pinakas(Display.java:83)
at program.Main.main(Main.java:334)
答案 0 :(得分:3)
我打赌问题出在以下几行(可能是第83行)。:
String[] temp5 = disp.lineDelimiter(pinaka[sr],6, "#");
Object[] doge = { temp5[0], temp5[1], temp5[2], temp5[3], temp5[4], temp5[5],temp5[6]};
该数组只有6个元素。但是你正在访问第7个元素:
temp5[6]
这就是你得到 ArrayIndexOutOfBoundsException 的原因。