Метод transferTo
Метод transferTo класса InputStream читает все байты из текущего входного потока и записывает их в переданный выходной поток OutputStream. Метод работает до тех пор, пока не достигнет конца входного потока. В единственный параметр мы передаем целевой выходной поток, в который будут записаны данные. Метод возвращает количество фактически переданных байтов в виде значения типа long.
Метод может выбросить исключение IOException, если во время чтения или записи произошла ошибка ввода-вывода.
Синтаксис
public long transferTo(OutputStream out) throws IOException
Пример
Давайте передадим данные из одного потока в другой с помощью метода transferTo:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Main
{
public static void main(String[] args) throws IOException
{
byte[] data = "abcde".getBytes();
try (InputStream in = new ByteArrayInputStream(data);
OutputStream out = new ByteArrayOutputStream())
{
long count = in.transferTo(out);
System.out.println(count);
System.out.println(out.toString());
}
}
}
Результат выполнения кода:
5
"abcde"
Пример
Давайте скопируем содержимое одного файла в другой с помощью метода transferTo:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
public class Main
{
public static void main(String[] args) throws IOException
{
try (InputStream in = new FileInputStream("input.txt");
OutputStream out = new FileOutputStream("output.txt"))
{
long count = in.transferTo(out);
System.out.println(count);
}
}
}
Результат выполнения кода:
"12"
В данном примере число 12 означает количество байтов, которые были успешно скопированы из файла input.txt в файл output.txt.
Смотрите также
-
класс
InputStream,
который представляет входной поток байтов -
метод
read,
который читает один байт из потока -
метод
readAllBytes,
который читает все байты из потока -
класс
OutputStream,
который представляет выходной поток байтов