Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
64
Добавлен:
18.12.2017
Размер:
3.64 Кб
Скачать
package Lab3;

import java.io.*;
import java.util.ArrayList;

import Lab2.Bus;
import Lab2.Car;
import Lab2.Motorcycle;
import Lab2.Trailer;
import Lab2.Trans;
import Lab2.Truck;



public class Database {
public static ArrayList<Trans> loadListFromFile(String filename) {
Log.print("Загрузка списка из файла...");
ArrayList<Trans> trs = new ArrayList<Trans>();
try {
File file = new File(filename);
FileReader fileReader = new FileReader(file);
BufferedReader reader = new BufferedReader(fileReader);
String line = reader.readLine();
while(line != null) {
String s[] = line.split(" "); // car 60 5 FERRARI_E10 AUDI R8
if (s[0].equals("car") || s[0].equals("bus")){
int max_speed = Integer.parseInt(s[1]);
int max_pass = Integer.parseInt(s[2]);
String model = s[3] ;
String mark = s[4];
for(int i = 5; i < s.length; i++)
mark += " " + s[i];
if(s[0].equals("car")) trs.add(new Car(model, mark, max_speed, max_pass));
if(s[0].equals("bus")) trs.add(new Bus(model, mark, max_speed, max_pass));
}else if (s[0].equals("motorcycle")){
int max_speed = Integer.parseInt(s[1]);
String model = s[2] ;
String mark = s[3];
for(int i = 4; i < s.length; i++)
mark += " " + s[i];
trs.add(new Motorcycle(mark, model, max_speed));
}else if (s[0].equals("truck") || s[0].equals("trailer")){ // track 40 200 Tracktor Belarus 228
int max_speed = Integer.parseInt(s[1]);
int max_load = Integer.parseInt(s[2]);
String model = s[3] ;
String mark = s[4];
for(int i = 5; i < s.length; i++)
mark += " " + s[i];
if(s[0].equals("truck")) trs.add(new Truck(model, mark, max_speed, max_load));
if(s[0].equals("trailer")) trs.add(new Trailer(model, mark, max_speed, max_load));
}
line = reader.readLine();
}
reader.close();
fileReader.close();
} catch (IOException e) { //обнаружение ошибки во входном потоке
e.printStackTrace();
Log.print("Не удалось выполнить загрузку");
Log.print(e.toString());
}
Log.print("Загрузка выполнено успешно");
return trs;
}
public static void saveListFromFile(String filename, ArrayList<Trans> trans) {
Log.print("Сохранение списка в файл...");
try {
FileOutputStream fileStream = new FileOutputStream(filename);
OutputStreamWriter writer = new OutputStreamWriter(fileStream);
for (int i = 0; i < trans.size(); i++) {
Trans t = trans.get(i);
if (t instanceof Car || t instanceof Bus) {
Car c = (Car) t;
writer.append(t instanceof Car ? "car" : "bus");
writer.append(" " + c.GetSpeed() + " " + c.GetPass() + " " + c.GetMark() + " " + c.GetModel());
} else if (t instanceof Motorcycle) {
Motorcycle m = (Motorcycle) t;
writer.append("motorcycle" + " " + m.GetSpeed() + " " + m.GetMark() + " " + m.GetModel());
} else if (t instanceof Truck || t instanceof Trailer) {
Truck tr = (Truck) t;
writer.append(t instanceof Truck ? "truck" : "trailer");
writer.append(" " + tr.GetSpeed() + " " + tr.GetLoad() + " "+ tr.GetMark() + " " + tr.GetModel());
}
writer.append("\r\n");
}
writer.close();
fileStream.close();
} catch (IOException e) { //обнаружение ошибки в потоке
e.printStackTrace();
Log.print("Не удалось выполнить сохранение");
Log.print(e.toString());
}
Log.print("Сохранение выполнено успешно");
}
}


Соседние файлы в папке Lab3