Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
Ev_GeN_N

Выбрать из файла нужные строки (Java)

29.01.2012, 15:18. Показов 3171. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, учусь работе с файлами на java. Никак не могу разобраться как заставить выбирать нужные строки программу и записывать только их (повторно, после оригинала). Пока программа просто переписывает весь текст прописными буквами.
Подскажите идею как это организовать, спасибо.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package lab_01;
import java.io.*;
import java.util.*;
/*5. В файле, содержащем фамилии студентов и их оценки, записать в отдельный файл прописными буквами
 фамилии тех студентов, которые имеют средний балл более 7. */
public class Text {
    static StringBuilder text = new StringBuilder();
    static StringBuilder text2 = new StringBuilder();
    static StringBuilder buf = new StringBuilder();
    
    public static void FileOpen(){
        FileInputStream file = null;
        try{
            file = new FileInputStream(new File("C:\\Users\\admin\\workspace\\lab_05\\Text1.txt"));
        } catch(FileNotFoundException e) {}
        Scanner scan = new Scanner(file);
        while (scan.hasNext()){
        buf = new StringBuilder(scan.nextLine());
        text.append(buf+"\r\n");
        StringTokenizer textEd = new StringTokenizer(buf+"\r\n");
            while (textEd.hasMoreTokens()){
                if (buf.length()>1){
                    text2.append(textEd.nextToken().toUpperCase()+" ");}
                else
                    text2.append(textEd.nextToken()+" ");
            }
            text2.append("\r\n");
        }
        System.out.println(text);
        System.out.println("\r\n\n"+text2);
    }
    public static void SaveFile(){
        FileOutputStream file = null;
        try{
            file = new FileOutputStream(new File("C:\\Users\\admin\\workspace\\lab_05\\Text.txt"));
        } catch(FileNotFoundException e) {}
        PrintWriter print = new PrintWriter(file);
        print.println(text);
        print.println(text2);
        print.close();
    }
    
    public static void main(String[] args) {
        Text.FileOpen();
        Text.SaveFile();
    }
 
}
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.01.2012, 15:18
Ответы с готовыми решениями:

как выбрать нужные данные из кучи бреда
Плиз!!! Покажите на примере как выбрать нужные мне данные. Напримет отсюда, чтобы остались только one, two: <table> ...

Выбрать нужные строки в таблице
Народ, привет. Есть вот такая таблица File: ID | FileId | Revision 1 | 1 | 1 2 ...

Через делфи выбрать из икселя нужные строки
Подскажите как из подобного файла выбрать тех людей которые идут подряд, тоесть две соседние строки совпадают по ФИО, но с разными Датой и...

3
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
29.01.2012, 17:41
недостаточно данных, нужно структуру файла(или пример из него строк 3-4, с баллом ниже и выше)

а общий принцип такой:
валим по файлу с данными "по его формату" (например в одной строке студент, во второй его балл, тогда читаем студента во временную переменную, читаем вторую строку) если балл выше 7, то Апаем буквы студента и выводим его в файл результат
1
Ev_GeN_N
30.01.2012, 01:55
Структура файла такова

иванов 5 7 3 8 7
петров 6 8 9 7 6
сидоров 7 4 6 9 9
спасибо
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
30.01.2012, 15:33
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
 
public class StudentSignCounter {
 
    public static void main(String[] args) throws IOException {
        HashMap<String, Integer[]> students = new HashMap<String, Integer[]>();
        String f = "path_to_file";
        LineNumberReader lnr = new LineNumberReader(new FileReader(f));
        String line = lnr.readLine();
        String s[];
        double sign;
        Integer[] ints;
        while (line != null) {
            s = line.trim().split(" ");
            ints = getIntArray(s);
            sign = getAverage(ints);
            if (sign >= 7.0)
                students.put(getName(s), ints);
            line = lnr.readLine();
        }
        for (Iterator<String> it = students.keySet().iterator(); it.hasNext();) {
            String key = it.next();
            System.out.println("Student " + upFirst(key) + " signs: " + Arrays.toString(students.get(key))
                    + " average: " + getAverage(students.get(key)));
        }
    }
 
    public static String upFirst(String s) {
        char[] c = s.toCharArray();
        c[0] = Character.toUpperCase(c[0]);
        return new String(c);
    }
 
    public static String getName(String[] s) {
        return s[0];
    }
 
    public static Integer[] getIntArray(String[] s) {
        if (s.length >= 2) {
            Integer[] integers = new Integer[s.length - 1];
            for (int i = 1; i < s.length; i++) {
                integers[i-1] = Integer.valueOf(s[i]);
            }
            return integers;
        } else
            return new Integer[] { 0 };
    }
 
    public static Double getAverage(Integer[] i) {
        Integer avg = 0;
        for (Integer j : i) {
            if (j != null)
                avg += j;
        }
        return Double.valueOf(avg) / Double.valueOf(i.length);
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.01.2012, 15:33
Помогаю со студенческими работами здесь

Как из таблицы выбрать нужные строки не по порядку, а начиная с 4-ой каждую 7-ую?
Есть таблица со множеством значений. В ней мне нужны 4 строка и от четвертой каждая 7-ая. Подскажите, как это реализовать в маткаде?

Как с помощью макроса автоматически выбрать данные из другого файла Excel в нужные ячейки?
Как с помощью макроса автоматически выбрать данные из другого файла Excel в нужные ячейки?

Как извлечь из файла нужные строки?
У меня есть файл в котором хранятся нужные строчки которые нужно извлечь, для извлечения одной части записи работает такой код: string...

Как вывести из текстового файла нужные строки?
Добрый день! Помогите пожалуйста. Есть файл в котором содержатся много строк с разделителями: ...

Из исходного файла вывести нужные строки из 3-его параметра в текстовый файл 2
Из исходного(paramstr(1)) файла вывести нужные строки из 3-его параметра(paramstr(3)) в текстовый файл 2(Paramstr(2)). uses crt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru