Люди, я яву изучаю 1 семестр, тес более 2 лабу делаю,так шо сильно не матюкайтесь, а если можете, то помогите. кароче, вот моя лаба
само задание такое: нада сделать загрузку и выгрузку матрицы из и в файл, ввод с клавы, и умножение на число введённой матрицы. 1 пакет для окна, 2 для ф-й обработки матрицы
1 пакет
package frame_pack;
import matrix_pack.*;
import java.awt.*;
public class java_main extends Frame
{
public java_main()
{
addWindowListener(new myWindAdapter());
setLayout(new BorderLayout());
}
public static void main(String args[])
{
java_main frame = new java_main();
frame.setSize(400, 300);
MainClass matr = new MainClass();
//matr.InFromFile(); ////////////////////////////////////вот тут показует ошибку
Button save = new Button("Сохранить в файл");
save.addActionListener(
new SaveButtonListener(frame, matr));
frame.add(save, BorderLayout.EAST);
frame.setLocation(300, 300);
frame.setTitle("Лабораторная работа №2");
Label l1 = new Label(" Таблица отображения матрицы");
frame.add(l1, BorderLayout.NORTH);
Button load = new Button("Загрузить из файла");
save.addActionListener(
new LoadButtonListener(frame, matr));
frame.add(load, BorderLayout.WEST);
String val = "lalala";
TextArea tf = new TextArea(val);
frame.add(tf, BorderLayout.CENTER);
frame.setVisible(true);
}
}
+ там ишшо классы обработчики событий кнопки и выхода
2 пакет:
package matrix_pack;
import java.io.*;
public class MainClass
{
public String filePathI;
public String filePathO;
public int masx;
public int masy;
public int mas[][];
public MainClass()
{
filePathI = "111.txt";
filePathO = "222.txt";
}
public void InFromFile()throws IOException
{
InputStream myFile = new FileInputStream(filePathI);
masx = 0;
masy = 0;
int i;
while (myFile.available() > 0)
{
i = myFile.read();
if ((char)i == '\n')
{
if (masy == 0) masx++;
masy++;
}
if (masy == 0)
{
if ((char)i == ' ') masx++;
}
}
masy++;
myFile.close();
mas = new int[masy][];
for (int k = 0; k < masy; k++) mas[k] = new int[masx];
myFile = new FileInputStream(filePathI);
int num = 0;
int x = 0;
int y = 0;
while (myFile.available() > 0)
{
i = myFile.read();
if ((char)i == '\n')
{
y++;
x = 0;
}
else
{
if (i > 47 && i < 59)
{
i -= 48;
num = num * 10 + i;
}
else
{
mas[y][x] = num;
num = 0;
x++;
}
}
}
mas[y][x] = num;
myFile.close();
}
public void InFromKeyB()throws Exception
{
String s;
System.out.print("\nVvedite kolichestvo stolbcov matrici : ");
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
s = in.readLine();
masx = Integer.valueOf(s).intValue();
System.out.print("\nVvedite kolichestvo radkov matrici : ");
s = in.readLine();
masy = Integer.valueOf(s).intValue();
mas = new int[masy][];
for (int k = 0; k < masy; k++) mas[k] = new int[masx];
for (int i = 0; i < masy; i++)
for (int j = 0; j < masx; j++)
{
System.out.print("\nVvedite element masiva " + (i + 1) + " " + (j + 1) + ": ");
s = in.readLine();
mas[i][j] = Integer.valueOf(s).intValue();
}
System.out.println("\n\tVvod okonchen");
}
public void MulMatrix()throws Exception
{
System.out.print("\nVvedite koeficient umnogeniya: ");
int koef;
String s;
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
s = in.readLine();
koef = Integer.valueOf(s).intValue();
for (int i = 0; i < masy; i++)
for (int j = 0; j < masx; j++)
mas[i][j] *= koef;
}
public void WriteToFile()throws Exception
{
OutputStream myFile = new FileOutputStream(filePathO);
String s;
char masc[];
for (int i = 0; i < masy; i++)
{
for (int j = 0; j < masx; j++)
{
s = String.valueOf(mas[i][j]).toString();
masc = s.toCharArray();
for (int k = 0; k < s.length(); k++)
myFile.write(masc[k]);
myFile.write((char)' ');
}
myFile.write((char)'\n');
}
}
}
+ ишшо несколько классов, но то уже не важно.
короче, проблема в том, шо если я напишу :
MainClass matr = new MainClass();
matr.InFromFile();
то оно показываит ошибку
Severity and Description Path Resource Location Creation Time Id
Unhandled exception type IOException my_java/src/frame_pack java_main.java line 22 1196517028468 577
(в еклипсе 3) Примерно то же самое и в ВС 8. Когда делаю такое в консоли ( вопще это класс с 1 консольной лабы), или не вызываю эту функцию, а там изменю коета поле, то идёт нормально.
Вапше, низнаю...
F1!