Перейти к основному содержимому

1310 записей с тегом "Java"

Посмотреть все теги

· 2 мин. чтения

В этом кратком руководстве мы собираемся записать содержимое Reader в файл , используя обычную Java, затем Guava и, наконец, библиотеку ввода-вывода Apache Commons.

Эта статья является частью серии «Java — Back to Basic» здесь, на ForEach.

1. С Java

Начнем с простого решения Java :

@Test
public void givenUsingPlainJava_whenWritingReaderContentsToFile_thenCorrect()
throws IOException {
Reader initialReader = new StringReader("Some text");

int intValueOfChar;
StringBuilder buffer = new StringBuilder();
while ((intValueOfChar = initialReader.read()) != -1) {
buffer.append((char) intValueOfChar);
}
initialReader.close();

File targetFile = new File("src/test/resources/targetFile.txt");
targetFile.createNewFile();

Writer targetFileWriter = new FileWriter(targetFile);
targetFileWriter.write(buffer.toString());
targetFileWriter.close();
}

Во-первых, мы читаем содержимое Reader в строку; тогда мы просто записываем строку в файл.

· 2 мин. чтения

1. Обзор

В этом очень кратком руководстве мы обсудим, как преобразовать byte[] в Writer , используя простую Java, Guava и Commons IO.

2. С простой Java

Начнем с простого Java-решения:

@Test
public void givenPlainJava_whenConvertingByteArrayIntoWriter_thenCorrect()
throws IOException {
byte[] initialArray = "With Java".getBytes();
Writer targetWriter = new StringWriter().append(new String(initialArray));

targetWriter.close();

assertEquals("With Java", targetWriter.toString());
}

· 3 мин. чтения

1. Обзор

В этом руководстве мы изучим и поймем класс FileWriter , присутствующий в пакете java.io.

2. FileWriter

FileWriter — это специализированный OutputStreamWriter для записи символьных файлов . Он не предоставляет никаких новых операций, но работает с операциями, унаследованными от классов OutputStreamWriter и Writer .

До Java 11 FileWriter работал с кодировкой символов по умолчанию и размером буфера байтов по умолчанию. Однако в Java 11 представлены четыре новых конструктора, которые принимают Charset , что позволяет использовать указанный пользователем Charset . К сожалению, мы все еще не можем изменить размер байтового буфера, и он установлен на 8192.

· 6 мин. чтения

1. Обзор

В этом руководстве мы дадим обзор класса File , который является частью API java.io. Класс File дает нам возможность работать с файлами и каталогами в файловой системе .

2. Создание файлового объекта

Класс File имеет 4 общедоступных конструктора. В зависимости от потребностей разработчика могут быть созданы различные типы экземпляров класса File .

  • File(String pathname) — создает экземпляр, представляющий заданный путь
  • Файл (родительская строка, дочерняя строка) — создает экземпляр, представляющий путь, образованный путем соединения родительского и дочернего путей .
  • Файл (родительский файл, дочерний элемент строки) — создает экземпляр с путем, сформированным путем объединения родительского пути, представленного другим экземпляром файла , и дочерним путем .
  • Файл (URI uri) — создает экземпляр, представляющий заданный унифицированный идентификатор ресурса.

· 2 мин. чтения

1. Обзор

Каждый исполняемый класс Java должен содержать основной метод. Проще говоря, этот метод является отправной точкой приложения.

Чтобы запустить наш основной метод из самоисполняющегося JAR-файла, нам нужно создать правильный файл манифеста и упаковать его вместе с нашим кодом. Этот файл манифеста должен иметь основной атрибут манифеста, определяющий путь к классу, содержащему наш основной метод.

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

2. Выполнение JAR без основного атрибута манифеста

· 7 мин. чтения

1. Обзор

Java — это статически типизированный объектно-ориентированный язык программирования. Он также не зависит от платформы — программы на Java можно писать и компилировать на одном типе машины, например на системе Windows, и выполнять на другом, например на MacOS, без каких-либо изменений исходного кода.

В этом уроке мы рассмотрим и поймем основы синтаксиса Java.

2. Типы данных

В Java есть две широкие категории типов данных: примитивные типы и объекты/ссылочные типы .

· 2 мин. чтения

1. Обзор

В этом кратком руководстве мы рассмотрим, как создать файл в определенном каталоге .

Мы увидим разницу между абсолютными и относительными путями к файлам и будем использовать пути, которые работают в нескольких основных операционных системах.

2. Абсолютные и относительные пути к файлам

2.1. Абсолютные пути

· 4 мин. чтения

1. Введение

В этом руководстве мы рассмотрим причину ошибок java.lang.VerifyError и несколько способов их избежать.

2. Причина

Виртуальная машина Java (JVM) не доверяет всему загруженному байт-коду, что является основным принципом модели безопасности Java . Во время выполнения JVM загрузит файлы .class и попытается связать их вместе, чтобы сформировать исполняемый файл, но достоверность этих загруженных файлов .class неизвестна.

Чтобы убедиться, что загруженные файлы .class не представляют угрозы для конечного исполняемого файла, JVM выполняет проверку файлов .class . Кроме того, JVM гарантирует правильность форматирования двоичных файлов. Например, JVM проверит, что классы не являются подтипами конечных классов.

· 3 мин. чтения

1. Введение

Класс java.util.Objects является частью Java, начиная с версии 1.7. Этот класс предоставляет статические служебные методы для объектов, которые можно использовать для выполнения некоторых повседневных задач, таких как проверка на равенство, проверка нулей и т. д.

В этой статье мы рассмотрим новые методы, представленные в классе java.util.Objects в Java 9.

2. Метод requireNonNullElse

Этот метод принимает два параметра и возвращает первый параметр, если он не равен null , и второй параметр в противном случае. Если оба параметра равны null , генерируется исключение NullPointerException :

· 5 мин. чтения

1. Обзор

Java постоянно развивается и добавляет новые функции в JDK. И если мы хотим использовать эти функции в наших API, это может потребовать от нижестоящих зависимостей обновить свою версию JDK.

Иногда мы вынуждены ждать использования новых языковых функций , чтобы сохранить совместимость.

Однако в этом руководстве мы узнаем о JAR-файлах с несколькими выпусками (MRJAR) и о том, как они могут одновременно содержать реализации, совместимые с разными версиями JDK.

2. Простой пример