Метод newInputStream
Метод newInputStream класса Files открывает
указанный файл и возвращает объект InputStream,
через который можно читать содержимое файла побайтово.
В первый параметр мы передаем путь к файлу (объект
Path). Во второй параметр можно передать
опции открытия файла в виде OpenOption.
Если опции не указаны, файл открывается только
для чтения. Полученный поток необходимо закрывать
после использования, например, через
конструкцию try-with-resources.
Синтаксис
Files.newInputStream(path, [options])
Пример
Давайте откроем файл test.txt и прочитаем
из него один байт:
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
public class Main
{
public static void main(String[] args) throws Exception
{
Path path = Path.of("test.txt");
try (InputStream is = Files.newInputStream(path))
{
int b = is.read();
System.out.println(b);
}
}
}
Результат выполнения кода:
97
Пример
Давайте прочитаем все байты из файла
test.txt и выведем их в консоль:
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.Path;
public class Main
{
public static void main(String[] args) throws Exception
{
Path path = Path.of("test.txt");
try (InputStream is = Files.newInputStream(path))
{
byte[] bytes = is.readAllBytes();
System.out.println(new String(bytes));
}
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте скопируем содержимое одного файла в другой, используя входной и выходной потоки:
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
public class Main
{
public static void main(String[] args) throws Exception
{
Path src = Path.of("source.txt");
Path dst = Path.of("dest.txt");
try (InputStream is = Files.newInputStream(src);
OutputStream os = Files.newOutputStream(dst))
{
is.transferTo(os);
}
String res = Files.readString(dst);
System.out.println(res);
}
}
Результат выполнения кода:
"abcde"
Смотрите также
-
метод
newOutputStream,
который открывает выходной поток для записи -
метод
readAllBytes,
который читает все байты из файла -
метод
readString,
который читает содержимое файла в строку -
метод
newBufferedReader,
который открывает буферизованный поток для чтения