Читайте также: |
|
Введите имя города
qwe
Введите кол-во мэров
Введите имя мэра
qwe
Кол-во голосов:
Добавился элемент в коллекцию?true
Добавился элемент?true
Ввести город?Да(1)/Нет(2)
Введите имя города
asd
Введите кол-во мэров1
Введите имя мэра
asd
Кол-во голосов:
Добавился элемент в коллекцию?true
Добавился элемент?true
Ввести город?Да(1)/Нет(2)
Первый элемент вектора
Город Мэр Кол-во голосов
qwe qwe 1
Последний элемент вектора
Город Мэр Кол-во голосов
asd asd 1
Исходные данные:
Город Мэр Кол-во голосов
qwe qwe 1
asd asd 1
Исходные данные:
Город Мэр Кол-во голосов
qwe qwe 1
asd asd 1
Добавилась коллекция в вектор?true
Город Мэр Кол-во голосов
qwe qwe 1
asd asd 1
qwe qwe 1
asd asd 1
Введите имя города
cxz
Введите кол-во мэров
Введите имя мэра
cxz
Кол-во голосов:
Содержит вектор date объект A?true
Город Мэр Кол-во голосов
qwe qwe 1
asd asd 1
cxz cxz 1
qwe qwe 1
asd asd 1
Добавилась коллекция в вектор?true
Город Мэр Кол-во голосов
qwe qwe 1
asd asd 1
qwe qwe 1
asd asd 1
cxz cxz 1
qwe qwe 1
asd asd 1
Объем
Cодержится элемент в векторе?true
Cодержится коллекция в векторе?true
Объем
Объем
Город Мэр Кол-во голосов
qwe qwe 1
asd asd 1
qwe qwe 1
asd asd 1
cxz cxz 1
qwe qwe 1
asd asd 1
cxz cxz 1
Город Мэр Кол-во голосов
qwe qwe 1
asd asd 1
qwe qwe 1
asd asd 1
cxz cxz 1
qwe qwe 1
asd asd 1
cxz cxz 1
Cодержится элемент в векторе?false
Хэш код вектора
Пустой вектор?false
Очистелся вектор?true
Город Мэр Кол-во голосов
asd asd 1
Удалился объект vektor@c2ea3f?true
Удалилась колекция?true
Удалились все элементы кроме коллекции?true
Элементы в коллекции
Город Мэр Кол-во голосов
qwe qwe 1
asd asd 1
Элементы в векторе
Город Мэр Кол-во голосов
qwe qwe 1
qwe qwe 1
asd asd 1
qwe qwe 1
asd asd 1
Задание №7
Условие
Используя класс, созданный в задании №3 продемонстрировать работу с файлами. Последовательно записать в файл несколько объектов, затем произвести считывание записи с нужным номером.
Структура файла
Вданной программе запись в файл реализована следующим образом:
(количество объектов)(размер следующего объекта)(сам объект)(размер следующего объекта)(сам объект)
Графическая илюстрация:
Блок схема
Кодпрограммы
import java.io.*;
public class InOutput {
static private int i, j, size;
public int kol[],kol_m;
private String name_city;
static public int sizeObject [];
private String name_mayor[];
static private String name_file ="D:\\write.txt";
static public int n;
//Метод ввода данных
public void Enter(){
Try
{
BufferedReader a= new BufferedReader(new InputStreamReader(System. in));
System. out. println("Введите имя города");
String ch;
ch=a.readLine();
name_city = new String(ch.toString());
sizeObject [ i ]= sizeObject [ i ]+name_city.length();
System. out. print("Введите кол-во меров");
ch=a.readLine();
kol_m=Integer. parseInt (ch.toString());
sizeObject [ i ]= sizeObject [ i ]+4;
name_mayor= new String[kol_m];
kol= new int [kol_m];
for (j =0; j <kol_m; j ++){
System. out. println("Введите имя мэра");
ch=a.readLine();
name_mayor[ j ] = new String(ch.toString());
sizeObject [ i ]= sizeObject [ i ]+name_mayor[ j ].length();
System. out. println("Кол-во голосов:");
ch=a.readLine();
kol[ j ] = Integer. parseInt (ch.toString());
sizeObject [ i ]= sizeObject [ i ]+4;
}
}
catch (IOException e){
System. out. println("gh");
}
}
//Метод записи в файл данных
public void write(){
try {
FileOutputStream outstream= new FileOutputStream(name_file, true);
BufferedOutputStream bufout= new BufferedOutputStream(outstream);
DataOutputStream out= new DataOutputStream(bufout);
out.writeBytes(name_city);
out.writeInt(kol_m);
for (j =0; j <kol_m; j ++){
out.writeBytes(name_mayor[ j ]);
out.writeInt(kol[ j ]);
}
out.close();
}
catch (FileNotFoundException e){
System. out. println("Невозможно произвести запись в файл: " + name_file);
}
catch (IOException e){
System. out. println("Ошибка ввода/вывода: " + e.toString());
}
}
//Метод чтение записи номер, которой введен с клавиатуры
public int read(){
try {
File instream= new File(name_file);
RandomAccessFile in= new RandomAccessFile(instream,"r");
size =in.readInt();
System. out. println("В файле "+ size +" записей");
int sizeO[]= new int [ size ];
for (i =0; i < size; i ++){
sizeO[ i ]=in.readInt();
}
System. out. println("Введите номер записи которую надо прочесть");
BufferedReader a= new BufferedReader(new InputStreamReader(System. in));
String ch=a.readLine();
int nomer =Integer. parseInt (ch.toString());
int sum=16;
for(i=0;i<nomer-1;i++){
sum=sum+sizeO[i];
}
in.seek(sum);
byte [] arr= new byte [3];
in.read(arr);
name_city= new String(arr);
kol_m=in.readInt();
name_mayor= new String[kol_m];
kol= new int [kol_m];
for (i =0; i <kol_m; i ++){
in.read(arr);
name_mayor[ i ]= new String(arr);
kol[ i ]=in.readInt();
}
in.close();
return nomer;
}
catch (FileNotFoundException e){
System. out. println("Невозможно произвести запись в файл: " + name_file);
}
catch (IOException e){
System. out. println("Ошибка ввода/вывода: " + e.toString());
}
return 0;
}
//Метод печати объекта
public void Print(){
for (j =0; j <kol_m; j ++){
System. out. print(name_city+" "+name_mayor[ j ]+" "+kol[ j ]+"\n");
}
}
public static void main(String[] args){
try {
BufferedReader a= new BufferedReader(new InputStreamReader(System. in));
System. out. print("Введите кол-во строк в таблице");
String ch=a.readLine();
n = Integer. parseInt (ch.toString());
System. out. println("n=" + n);
}
catch (IOException e){
System. out. println("df");
}
sizeObject = new int [ n ];
InOutput A[]= new InOutput[ n ];
for (i =0; i < n; i ++){
A[ i ]= new InOutput();
A[ i ].Enter();
}
System. out. println("Исходные данные:");
System. out. print("Город Мэр Кол-во голосов\n");
for (i =0; i < n; i ++)
A[ i ].Print();
System. out. println("Запись в файл"+ name_file);
try {
FileOutputStream outstream= new FileOutputStream(name_file);
BufferedOutputStream bufout= new BufferedOutputStream(outstream);
DataOutputStream out= new DataOutputStream(bufout);
out.writeInt(n);
for (i =0; i < n; i ++){
out.writeInt(sizeObject [ i ]);
System. out. println("sizeObject="+ sizeObject [ i ]);
}
out.close();
}
catch (FileNotFoundException e){
System. out. println("Невозможно произвести запись в файл: " + name_file);
}
catch (IOException e){
System. out. println("Ошибка ввода/вывода: " + e.toString());
}
for (i =0; i < n; i ++)
A[ i ].write();
System. out. println("Файл сформирован"+ name_file);
InOutput B= new InOutput();
int nomer=B.read();
System. out. println(nomer+" Запись");
System. out. print("Город Мэр Кол-во голосов\n");
B.Print();
}
}
Дата добавления: 2015-10-29; просмотров: 46 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Результаты работы программы | | | Требования к программе |