Кофе-брейк #135. 5 способов преобразования файла в строку Java. Как изменить аргументы командной строки в Java

Статья из группы Random

5 способов преобразования файла в строку Java

Источник: Medium Кофе-брейк #135. 5 способов преобразования файла в строку Java. Как изменить аргументы командной строки в Java - 1Сегодня мы обсудим 5 простых и проверенных способов чтения или преобразования файла в строку в Java. Выбор наиболее подходящего для вас способа зависит от конфигурации того или иного проекта. Для начала предположим, что inputStream — это переменная типа InputStream.

InputStream inputStream;
А теперь проверим различные способы преобразования.

1. Использование встроенного пакета файлов Java 1.11+:


import java.nio.file.Files;
import java.nio.file.Path;
String result = Files.readString(Path.of("filePath"));

//Bonus: To Write string to a file you can use 
String content = "Demo Content";
Files.writeString(filePath, content);
Этот метод работает с Java 1.11+.

2. Использование встроенного пакета Streams Java 1.8+:


String result =  new  String( Files.readAllBytes ( Paths.get ( filePath )),          StandardCharsets.UTF_8 ) ;
Этот метод работает с Java 1.8+.

3. Собственный Java-сканер:


try (Scanner scanner = new Scanner(Paths.get(fileName), StandardCharsets.UTF_8.name())) {
    String result = scanner.useDelimiter("\\A").next();   
}
Обратите внимание, что \A представляет шаблон регулярного выражения для метода сканера useDelimiter. \A означает: :start of a string! (начало строки!). Поэтому когда этот шаблон применяется, весь поток готов к использованию в объекте сканера.

4. Способ Apache commons-io IOUtils:


File file = new File("data.txt");
String result = FileUtils.readFileToString(file, StandardCharsets.UTF_8);
Для этого метода в ваш проекте требуется наличие библиотеки Apache commons-io. Вы можете найти ее по ссылке от maven.

5. Использование библиотеки Google Guava:


String result = Files.toString(new File(path), Charsets.UTF_8);
Использование этого способа предполагает, что в вашем проекте уже имеется библиотека Guava. Вы можете найти ее с помощью ссылки от maven. Если вы хотите поэкспериментировать с реальными InputStream без каких-либо служебных методов, тогда используйте именно этот способ.

Как изменить аргументы командной строки в Java

Источник: DZone В этой статье вы узнаете, как изменить аргументы командной строки в Java, как они передаются и как работают. Как вы проверяете, что ваш код не содержит ошибок и обрабатывает все запросы? Самый простой способ — проверить его на всех возможных диапазонах тестовых случаев. Однако прохождение всех этих тестов может быть довольно долгим и трудоемким. Нам нужен какой-то иной способ, который может сделать это легко, без особых хлопот и желательно автоматизировано. Аргументы командной строки в Java — одно из решений нашей проблемы. Они заметно упрощают процесс тестирования и отладки.

// here args will hold the command line arguments
    public static void main(String[] args) {
        System.out.println("Hello World!");
        // remaining code will go here
    }

Что такое аргументы командной строки?

Аргументы командной строки Java (Command-Line Arguments) — это способ ввода данных в программу через командную строку. Программисты могут передавать эти аргументы непосредственно из консоли, к которой будет обращаться метод main(). При необходимости аргументами командной строки можно пренебречь, передав значения непосредственно методу main().

Как работают аргументы командной строки?

Аргументы командной строки упаковываются и передаются в args[]. Это массив строк, который содержит все переданные ему аргументы командной строки. Каждый аргумент будет храниться по индексу, начиная с args[0] до args[n].

Как передаются аргументы командной строки?

Аргументы командной строки передаются через командную строку или терминал. Все переданные через них аргументы будут преобразованы и заключены в массив args[] внутри JVM. Теперь давайте посмотрим, как передавать аргументы командной строки на примере. Предположим, у нас есть файл с каким-то кодом Java. Следующие этапы продемонстрируют, как передавать аргументы командной строки в Java:
  1. Сохраните программу Java с расширением .java (например, Arguments.java).

  2. Откройте терминал/командную строку в каталоге, где программа хранится локально.

  3. Скомпилируйте программу Java для преобразования файла .java в файл .class.

    • Команда: javac filename.java (В нашем примере: javac Arguments.java)
  4. Запустите программу и передайте аргументы после того, как имя файла будет разделено пробелами.

    • Команда: java filename argument1 argument2 .... argumentN (В нашем примере аргументы Java: Welcome to this blog and Happy Learning)

Как получить доступ к аргументам командной строки?

А теперь давайте попробуем получить доступ ко всем переданным аргументам командной строки в Java. Как это сделать? Поскольку аргументы хранятся в массиве args[], это означает, что мы можем легко получить к ним доступ с помощью args[i], где указывается индекс, который может варьироваться от 0 до n (общее количество переданных аргументов).

class Arguments {
    public static void main( String[] args ) {
        System.out.println(" Hello World! ");
        // args.length is used to get length of args array

        System.out.println(" Total number of args: " + args.length);
        // iterating over the args array to print the args if available 

        for (int i = 0; i < args.length; i++) {
            System.out.println(" Arg " + i + ": " + args[i]);
        }
    }
}
Вывод:
Hello World! Total number of args: 7 Arg 0: Welcome Arg 1: to Arg 2: this Arg 3: blog Arg 4: and Arg 5: Happy Arg 6: Learning

Как изменить аргументы командной строки?

Здесь мы можем использовать args[i] для получения значения по i-му индексу, а затем использовать оператор присваивания (=). Так мы можем изменить аргумент командной строки по i-му индексу. Приведенный ниже фрагмент кода изменит некоторые аргументы, переданные через командную строку в Java.

args[1] = " Modified Command Line Argument 1 ";
args[3] = " Modified Command Line Argument 2 ";
args[5] = " Modified Command Line Argument 3 ";
Вывод после изменения:
Hello World! Total number of args: 7 Arg 0: Welcome Arg 1: Modified Command Line Argument 1 Arg 2: this Arg 3: Modified Command Line Argument 2 Arg 4: and Arg 5: Modified Command Line Argument 3 Arg 6: Learning

Заключение

  • Аргументы командной строки Java — это способ ввода данных в программу через командную строку.

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

  • Аргументы командной строки записываются в массив строк args[].

  • Мы можем получить доступ к аргументам командной строки или изменить их, используя операторы args[i] и операторы присваивания.

Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ