Почему ничего не записывает в файл?
У меня есть код который должен записывать байты с исходного файла в другой файл, но у меня он записывает только пробел.
1) Как записать все байты с исходного файла в итоговый?
2) Что означают параметры в методе write(byte[] b, int off, int len), а именно int off, int len?
package com.javarush.task.task18.task1808;
/*
Разделение файла
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
FileInputStream file1 = new FileInputStream(bf.readLine());
FileOutputStream file3 = new FileOutputStream(bf.readLine());
byte[] b = new byte[file1.available()];
while (file1.available() > 0) {
file3.write(b, 0, b.length);
}
}
}
Ответы (2 шт):
Сам решил проблему, кому помог апните ответ. Буду благодарен!
package com.javarush.task.task18.task1808;
/*
Разделение файла
*/
import java.io.*;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
FileInputStream fileInputStream = new FileInputStream(bf.readLine());;
FileOutputStream fileOutputStream2 = new FileOutputStream(bf.readLine());
if (fileInputStream.available() > 0) {
//читаем весь файл одним куском
byte[] buffer = new byte[fileInputStream.available()];
int count = fileInputStream.read(buffer);
fileOutputStream1.write(buffer, 0, buffer.length);;
}
}
}
Ответ на второй вопрос: первый параметр - откуда читаем байты, второй параметр - начальная позиция считывания байтов, третий параметр - количество, которое необходимо записать с массива buffer в файл
P.S. буду благодарен так же за критику
FileOutputStream fileOutputStream2 = new FileOutputStream(bf.readLine())
иии строчка fileOutputStream1.write(buffer, 0, buffer.length);;