Глава 4
Задача 4.9 "Разбиение файлов."
Предположим, что у нас есть файл с численными данными, часть которых - отрицательные, а часть - положительные. Нужно сначала создать два файла для раздельного хранения положительных и отрицательных чисел, а затем вывести оба файла, причем файл с положительными значениями должен быть выведен первым. Используйте подходящий генератор случайных чисел, чтобы создать файлы, общее количество чисел в которых должно быть равно 100.
Решение 2 (продолжение решения задачи)
Теперь, когда у нас создан файл (смотри предыдущую программу), в который выведено 100 случайных целых чисел (примерно половина из них отрицательные). Напишем программу, которая считывает этот файл и сортирует считанные числа так, что помещает положительные числа в один выходной файл, а отрицательные - в другой.
Код программы:
import java.io.*;
import javagently.*;
class FileBreaker {
FileBreaker() throws IOException {
Stream fin = new Stream(System.in);
Stream fout1= new Stream ("data1.out",Stream.WRITE);
Stream fout2= new Stream ("data2.out",Stream.WRITE);
try {
fin = Filer.open("data.txt");
}
catch (FileNotFoundException e) {
System.out.println("Five tries up");
System.out.println("Connecting to keyboard by default");
}
int n = 0;
// try read file
try {
for(;;){
for(int i=0;i < 10; i++){
n = fin.readInt();
if(n < 0){
fout1.print(n);
fout1.print(" ");
}
else{
fout2.print(n);
fout2.print(" ");
}
}
fout1.print("\n");
fout2.print("\n");
}
}
catch (EOFException e) {
System.out.println(" All data is reading ");
}
fin.close();
fout1.close();
fout2.close();
}//end constructor
public static void main (String[] args) throws IOException {
new FileBreaker();
}
int random_01 (int min, int max ){
int z =0;
while(z < min ){
z = (int) (Math.random()* max);
}
return z;
}
}
Результат :
-89 -101 -176
347 299 286 89 93 309 25
-466 -51 -345 -66 -21 -252
-443 -259 -392
-311 -463 -120 -495
-37 -255 -39 -201 -41 -68 -323
-470 -151 -133
-50 -229 -225 -176 -27 -373
-150 -193 -278 -88
-153 -174 -313 -186
-196 -176 -36
450 387 466 87
291 492 207 203 65 203 157
470 120 425 307 488 158
329 355 50
139 436 366 128 245 393 420
21 346 178 10
233 181 82 493 259 248
330 100 99 391 23 406
143 5 76 91 267 305 14
Назад |
Начало урока |
Вверх |
Вперед
Содержание