- Третий пост в серии streams, он будет посвящен сканированию на Java. Я создал YouTube видео версию, поэтому, пожалуйста, не забудьте проверить и это.
Сканирование и форматирование
- Программирование ввода-вывода часто включает перевод данных в аккуратно отформатированные данные и обратно, которые мы, люди, любим читать. Выполнение этого вручную может быть довольно утомительным, поэтому Java предоставила нам два API, чтобы помочь в этом. Сканер API и Форматирование API. В этом посте в блоге я расскажу вам об API сканера.
Сканер
- Что такое сканер? Ну, сканер – это класс в Java, который используется для получения входных данных примитивных типов Java. Затем сканер берет собранные данные и разбивает их на “токены”. Эти маркеры определяются любым пробелом между символами. Мы должны использовать сканер на java, когда у нас есть источник данных, внешний по отношению к нашей программе, и мы хотим проанализировать данные из него. Синтаксический анализ просто означает, что мы хотим каким-то образом изменить данные. Теперь, когда у нас есть базовое представление о сканере, давайте рассмотрим некоторый код
import java.io.*; import java.util.Scanner; public class ScanXan { public static void main(String[] args) throws IOException { Scanner s = null; try { s = new Scanner(new BufferedReader(new FileReader("xanadu.txt"))); while (s.hasNext()) { System.out.println(s.next()); } } finally { if (s != null) { s.close(); } } } }
1) главный : это означает основной метод в Java, и это очень важно для любого приложения Java. Он действует как отправная точка для JVM (виртуальной машины Java).
2) бросает : это часть обработки исключений java, она сигнализирует компилятору, что обработка исключений для этого метода будет где-то в другом месте. По сути, throws указывает JVM искать соответствующий обработчик исключений в другом месте. Однако в этом коде мы не обрабатываем исключение, и любые исключения нарушают код.
3) Исключение IOException : это сигнализирует о том, что внутри этого метода может произойти какое-то исключение ввода-вывода. Этот класс является общим классом исключений, создаваемых неудачными операциями ввода-вывода.
4) попробуйте{} : это называется блоком попыток, и любой код, который может вызвать исключение, должен находиться внутри этого.
5) новый BufferedReader() : класс BufferedReader делает потоки ввода символов более эффективными. Он используется для обертывания любого считывателя, метод чтения() которого может быть дорогостоящим. В нашем случае Читателем является класс FileReader. Поэтому вместо чтения непосредственно из потока наш сканер теперь считывает данные из буфера, возвращаемого BufferedReader(). Это означает меньшее количество операций ввода-вывода, что делает нашу программу более эффективной.
6) новый читатель файлов (“xanadu.txt “) :
: это удобный класс для чтения символьных файлов. Он вернет поток символов из файла”xanadu.txt “находится в корневом каталоге. 7) новый сканер (новый считыватель буферов (новый считыватель файлов(“xanadu.txt “))
: итак, собрав все это вместе, сначала FileReader создает поток символов, и он состоит из содержимого из “xanadu.txt “. Затем мы оборачиваем его с помощью BufferedReader(), который устраняет ненужные и нежелательные операции ввода-вывода, делая наш код более эффективным. Наконец, мы используем вновь созданный буферизованный поток для создания нашего сканера, а сканер создает свои токены, которые мы позже будем использовать для анализа наших данных. 8) s.hasNext()
: это используется в цикле while, и это то, что позволяет нашему циклу while продолжать цикл. hasNext() – это метод для нашего объекта сканера, и он будет возвращать значение true до тех пор, пока внутри сканера есть маркер. При каждом взаимодействии цикла while мы распечатываем следующий токен сканера с помощью System.out.println(s.next()). 9) наконец{}
- Спасибо, что нашли время в свой день, чтобы прочитать этот мой пост в блоге. Если у вас есть какие-либо вопросы или проблемы, пожалуйста, прокомментируйте ниже или свяжитесь со мной по Твиттер .
- Также не забудьте проверить мой канал YouTube для получения дополнительных учебных пособий по программированию.
Оригинал: “https://dev.to/theplebdev/scanners-55mg”