I am writing a program to copy large files, so I want to read specific number of bytes and write to another file. I want to copy the file and get same number of bytes. But I am getting more. Plus I also want the contents of the file to remain same. What am I doing wrong here? If someone can explain why am I getting this extra text, that would be great.
test.txt
sometext sometext sometext sometext
sometext sometext sometext sometext
sometext sometext sometext sometext
sometext sometext sometext sometext
Practice.java
public class Practice{
public static void main(String[] args){
byte[] buffer = new byte[100];
try{
FileInputStream f = new FileInputStream("test.txt");
FileWriter writer = new FileWriter("copy_test.txt");
int b;
while ((b=f.read(buffer)) != -1 )
writer.write(new String(buffer));
writer.close();
} catch(Exception e){
e.printStackTrace();
}
}
}
copy_test.txt
sometext sometext sometext sometext
sometext sometext sometext sometext
sometext sometext sometext sometext
sometext sometext sometext sometext
metext sometext sometext
sometext sometext sometext
Files.copy()?InputStreamas a source and aWriteras destination? Huh? Basically you're reading apples but writing oranges.FileSystems over anything. See here for instance. And please notes thatFiles.copy()can copy from anInputStreamto aPathas well.