Справочник по C#

    Исходники по языку программирования CSharp

    В Java Как читать файл построчно в обратном порядке – полное руководство

    /
    /
    /
    18 Views

    Вот простейшая Java- программа для построчного чтения файла в обратном порядке с использованием API-интерфейсов Java8. Попробуйте и дайте мне знать, если вы видите какие-либо проблемы с этим.

    • Java-программа для обращения содержимого файла
    • написать программу, которая заменяет каждую строку файла ее обратным

    Я буду писать серию интервью Java, в которой вы найдете больше вопросов и ответов. Пожалуйста, следите за обновлениями для получения дополнительной информации .

    В этом уроке мы рассмотрим следующие шаги:

    1. Мы будем читать файл crunchify.txt который находится на месте документа. Я использую Macbook Pro, поэтому, если вы используете другую ОС и ноутбук / рабочий стол, пожалуйста, измените путь к файлу в программе соответственно CrunchifyReverseLineReader.java
    2. Сначала мы будем читать файл в простом порядке.
    3. Мы будем читать файл в обратном порядке.
    4. Please note : Ниже программы по умолчанию удаляются все пустые строки из вывода в обратном порядке. Если вы хотите сохранить пустые строки, посмотрите на комментарий в самой программе.
    5. Создать файл CrunchifyReverseLineReaderTest.java и скопируйте код снизу для проверки результата.

    Java-код:

    CrunchifyReverseLineReaderCore.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
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    пакет crunchify. ком . учебные пособия ;
    Импортировать Java. Ио. ByteArrayOutputStream ;
    Импортировать Java. Ио. Файл ;
    Импортировать Java. Ио. IOException ;
    Импортировать Java. Ио. RandomAccessFile ;
    Импортировать Java. Ио. UnsupportedEncodingException ;
    Импортировать Java. Nio . ByteBuffer ;
    Импортировать Java. Nio . каналы . FileChannel ;
    / **
    * Прочитать файл от начала до конца
    *
    * @author Crunchify.com
    * /
    общественности учебный класс CrunchifyReverseLineReader {
    частный статический окончательный ИНТ РАЗМЕР БУФЕРА знак равно 8192 ;
    частный окончательный Канал FileChannel ;
    частный окончательный строка кодирование ;
    частный долго filePos ;
    частный ByteBuffer buf ;
    частный ИНТ bufPos ;
    частный ByteArrayOutputStream baos знак равно новый ByteArrayOutputStream ( ) ;
    частный RandomAccessFile RAF;
    частный байт lastLineBreak знак равно '/ n' ;
    общественности CrunchifyReverseLineReader ( файл файла ) бросает IOException {
    это ( файл , ноль ) ;
    }
    общественности CrunchifyReverseLineReader ( Файловый файл , строка кодировка ) бросает IOException {
    раф знак равно новый RandomAccessFile ( файл , р ) ;
    канал знак равно раф . getChannel ( ) ;
    FilePos знак равно раф . длина ( ) ;
    это. кодирование знак равно кодирование ;
    }
    общественности недействительным закрыть ( ) бросает IOException {
    раф . закрыть ( ) ;
    }
    общественности строка readLine ( ) бросает IOException {
    байт с ;
    в то время как ( правда ) {
    если ( bufPos < 0 ) {
    если ( filePos == 0 ) {
    если ( Баос == ноль ) {
    вернуть ноль ;
    }
    строка линия знак равно bufToString ( ) ;
    BAOS знак равно ноль ;
    вернуть линия ;
    }
    долго Начните знак равно Математика max ( filePos BUFFER_SIZE , 0 ) ;
    долго конец знак равно filePos ;
    долго Len знак равно конец начать ;
    ЬиЕ знак равно канал . карта ( FileChannel . MapMode . READ_ONLY , начать , лен ) ;
    bufPos знак равно ( int ) лен ;
    FilePos знак равно начать ;
    // Игнорируем пустые новые строки
    с знак равно Buf . get (bufPos ) ;
    если ( с == '/р' | | с == '/ n' )
    в то время как ( bufPos > 0 && (c == '/ r' || c == '/ n')) {
    bufPos–;
    с знак равно Buf . получить ( bufPos ) ;
    }
    если ( ! ( с == '/р' | | с == '/ n' ) )
    bufPos ++ ; // НОВАЯ ЛЕНА
    }
    / *
    * Это будет игнорировать все пустые новые строки.
    * /
    в то время как ( bufPos > 0 ) {
    с знак равно Buf . получить ( bufPos ) ;
    если ( с == '/р' | | с == '/ n' ) {
    // пропустить / r / n
    в то время как ( bufPos > 0 && (c == '/ r' || c == '/ n')) {
    c = buf.get (- bufPos);
    }
    // восстановить курсор
    если ( ! ( с == '/р' | | с == '/ n' ) )
    bufPos ++ ; // НОВАЯ ЛИНИЯ
    вернуть bufToString ( ) ;
    }
    Баос . написать ( с ) ;
    }
    / *
    * Если вы не хотите игнорировать новую строку и хотели бы
    * чтобы напечатать новую строку, используйте код ниже
    * и прокомментируйте выше время цикла
    while (bufPos–> 0) {
    byte c1 = buf.get (bufPos);
    if (c1 == '/ r' || c1 == '/ n') {
    if (c1! = lastLineBreak) {
    lastLineBreak = c1;
    Продолжить;
    }
    lastLineBreak = c1;
    return bufToString ();
    }
    baos.write (с1);
    }
    * /
    }
    }
    частный строка bufToString ( ) бросает UnsupportedEncodingException {
    если ( Баос . размер ( ) == 0 ) {
    вернуть ;
    }
    байт [ ] байтов знак равно Баос . toByteArray ( ) ;
    за ( int я знак равно 0 ; я < байт. длина / 2 ; я ++ ) {
    байт T знак равно байты [ i ] ;
    байт [ я ] знак равно байты [ байты . длина я 1 ] ;
    байты [ байты . длина я 1 ] знак равно т ;
    }
    Баос . сброс ( ) ;
    если ( кодировка ! знак равно ноль )
    вернуть новый Строка ( байты , кодирование ) ;
    еще
    вернуть новый Строка ( байты ) ;
    }
    }

    Обновлен код для удаления пустых строк из файла согласно комментарию от francesco.

    Другие должны прочитать статью: https://crunchify.com/why-and-for-what-should-i-use-enum-java-enum-examples/

    Теперь давайте проверим это. Создать тестовый файл.

    CrunchifyReverseLineReaderTest.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
    пакет crunchify. ком . учебные пособия ;
    Импортировать Java. Ио. BufferedReader ;
    Импортировать Java. Ио. Файл ;
    Импортировать Java. Ио. FileReader ;
    Импортировать Java. Ио. IOException ;
    / **
    * @author Crunchify.com
    * /
    общественности учебный класс CrunchifyReverseLineReaderTest {
    @SuppressWarnings ( ресурс )
    общественности статический недействительным main ( Строка [ ] аргументы ) бросает IOException {
    / *
    * Если вы хотите иметь пустой файл и хотите добавить несколько строк, используйте приведенный ниже код
    *
    * Файл file = новый файл (/ Users / appshah / Documents / crunchify.txt); RandomAccessFile raf = новый RandomAccessFile (файл,
    * rw); for (int i = 0; i <= 10; i ++) {// Добавление строки от 1 до 10 //raf.writeBytes(Adding Line + i + / n ); }
    * raf.close ();
    *
    * /
    / *
    * Тест – 1: В этом уроке мы прочитаем существующий файл crunchify.txt
    * Чтение файла в простом порядке
    * /
    FileReader logReader знак равно новый FileReader ( /Users/appshah/Documents/crunchify.txt ) ;
    Буфер BufferedReader знак равно новый BufferedReader ( logReader ) ;
    Система. вне. println ( ~~~~~~~~~~~~~~~~~~~ Простой способ чтения файла в Java без обращения ~~~~~~~~~~~~~~~~~~ / n ) ;
    за ( Строка строка 1 знак равно буфер . readLine ( ) ; строка 1 ! знак равно ноль ; строка 1 знак равно буфер . readLine ( ) ) {
    Система. вне. println ( строка 1 ) ;
    }
    / *
    * Тест – 2: В этом уроке мы прочитаем существующий файл crunchify.txt
    * Чтение файла в обратном порядке
    * /
    Файл файл знак равно новый Файл ( /Users/appshah/Documents/crunchify.txt ) ;
    CrunchifyReverseLineReader читатель знак равно новый CrunchifyReverseLineReader ( файл , UTF-8 ) ;
    строка линия ;
    Система. вне. print ( / n ~~~~~~~~~~~~~~~~~~~ Чтение файла в обратном порядке ~~~~~~~~~~~~~~~~~~~ / н / н ) ;
    в то время как ( ( строка знак равно читатель. readLine ( ) ) ! знак равно ноль ) {
    Система. вне. println ( строка ) ;
    }
    }
    }

    Note: Файл crunchify.txt имеет total 11 lines включая 1 пустую строку между ними, как вы видите в результате ниже.

    Выход:

    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
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Простой способ прочитать файл в Ява без реверса ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    —— Crunchify Учебники Старт ——
    как Устранить неполадки в более высоком процессоре , объем памяти & Использование процесса ?
    верхний 7 Советы по Speed Up WordPress & Повысить производительность
    Подробное руководство по созданию Установить SSL на сайте WordPress
    Список всех советов Genesis WordPress Framework
    Самый простой Hello World Spring MVC Tutorial И Учебник по JDBC MySQL
    NEW Запустите встроенный HTTP сервер Джерси во время запуска приложения Java
    NEWTOP 10 Java Интервью Вопросы Ответы
    Файл свойств Java : как Читай Конфиг . Свойства Значения В Java ?
    —— Crunchify Учебники Конец ——
    ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ чтение файл в Обратный порядок ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
    —— Crunchify Учебники Конец ——
    Файл свойств Java : как Читай Конфиг . Свойства Значения В Java ?
    NEWTOP 10 Java Интервью Вопросы Ответы
    NEW Запустите встроенный HTTP сервер Джерси во время запуска приложения Java
    Самый простой Hello World Spring MVC Tutorial И JDBC MySQL Tutorial
    Список всех советов Genesis WordPress Framework
    Подробное руководство по созданию Установить SSL на сайте WordPress
    верхний 7 Советы по Speed Up WordPress & Повысить производительность
    как Устранить неполадки в более высоком процессоре , объем памяти & Использование процесса ?
    —— Crunchify Учебники Старт ——
    В Java Как читать файл построчно в обратном порядке – полное руководство

    0.00 (0%) 0 votes

    moyadcode13
    • Facebook
    • Twitter
    • Google+
    • Linkedin
    • Pinterest
    moyadcode10
    moyadcode11
    moyadcode9