Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> java. работа с файлами 
:(
    Опции темы
doyourbest
Дата 25.11.2010, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 25.11.2010

Репутация: нет
Всего: нет



в программе нужно задействовать 3 файла: 
1 - в нем согласные буквы 
2 - рандомная комбинация букв из первого файла (это преобразование в программе) 
3 - записывается информация с 1го файла + со 2го 

что есть: 
программа БЕЗ ПРЕОБРАЗОВАНИЯ (( 
т.е. из 1го файла буквы копируются во 2ой, в 3ий - 1ый+2ой 
как грамотно сделать, чтобы работала функция random вместо копирования? 
м.б. а) x=(char)(1 + Math.random() * 20); или б) Random rand = new Random(); 
for(int i = 0; i < 10; i++) 
Код


import java.io.*; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.SequenceInputStream; 
import java.util.Random; 

public class First { 

public static void main(String[] args) throws FileNotFoundException, IOException { 
FileInputStream inFile1 = null; 
FileOutputStream outFile2 = null; 
FileInputStream inFile2 = null; 
SequenceInputStream sequenceStream = null; 
FileOutputStream outFile = null; 
int r; 

try { 
inFile1 = new FileInputStream("File1.txt"); 
outFile2 = new FileOutputStream("File2.txt"); 

//ПРЕОБРАЗОВАНИЕ! 

int c; 
while ((c = inFile1.read()) != -1) { outFile2.write(с); } 
} finally { 
if (inFile1 != null) { inFile1.close(); } 
if (outFile2 != null) { outFile2.close(); } 
} 

try { 
inFile1 = new FileInputStream("File1.txt"); 
inFile2 = new FileInputStream("File2.txt"); 
sequenceStream = new SequenceInputStream(inFile1, inFile2); 
outFile = new FileOutputStream("File3.txt"); 
int readedByte = sequenceStream.read(); 
while(readedByte!=-1){ 
outFile.write(readedByte); 
readedByte = sequenceStream.read(); 
} 
} catch (IOException e) { 
System.out.println("IOException: " + e.toString()); 
} finally 
{ 
try{sequenceStream.close();}catch(IOException e){} 
try{outFile.close();}catch(IOException e){} } 
}} 


буду очень признательна!
PM MAIL   Вверх
nc30
Дата 27.11.2010, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Интересующийся :)
*


Профиль
Группа: Участник
Сообщений: 140
Регистрация: 24.6.2010
Где: Санкт-Петербург

Репутация: 5
Всего: 8



Код

import java.io.*;
import java.util.Date;
import java.util.Random;

public class Main {

    private static final String SOURCE_FILE_NAME = "source.txt";
    private static final String SHUFFLED_FILE_NAME = "shuffled.txt";
    private static final String RESULT_FILE_NAME = "result.txt";

    public static void main(String[] args)  {
        try {
            // reading source, shuffling chars, writing milestone
            FileReader in = new FileReader(SOURCE_FILE_NAME);
            StringBuilder sb = new StringBuilder();
            int c;
            while ((c = in.read()) != -1) {
                sb.append((char) c);
            }
            FileWriter out = new FileWriter(SHUFFLED_FILE_NAME); // rewrite
            Random rand = new Random(new Date().getTime());
            int sblen = sb.length();
            for (int i = 0; i < sblen; i++) {
                int pos = rand.nextInt(sblen - i);
                out.write(sb.charAt(pos));
                sb.deleteCharAt(pos);
            }
            in.close();
            out.close();

            // reading both files, concatenating, writing result
            SequenceInputStream sis = new SequenceInputStream(
                    new FileInputStream(SOURCE_FILE_NAME),
                    new FileInputStream(SHUFFLED_FILE_NAME));
            FileOutputStream fos = new FileOutputStream(RESULT_FILE_NAME);
            int b;
            while((b = sis.read()) != -1) {
                fos.write(b);
            }
            sis.close();
            fos.close();

        } catch (Exception e) {
            System.out.println("An error occurs: " + e.getMessage());
        }
    }
}

Без особых изысков, но у меня работает  smile 

Это сообщение отредактировал(а) nc30 - 27.11.2010, 14:08
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0393 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.