• Post Reply Bookmark Topic Watch Topic
  • New Topic

copying files using fileReader, fileWriter

 
Bhasker Reddy
Ranch Hand
Posts: 176
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
public void copyfiles(String order_id) throws IOException {
File inputFile = new File("C:/XML/xmlfile.xml");
File outputFile = new File("C:/XML/" + order_id + ".xml");

FileReader in = new FileReader(inputFile);
FileWriter out = new FileWriter(outputFile);

int c;

while ((c = in.read() )!= -1)
out.write(c);
in.close();
out.close();
System.out.println("Renaming the XML FILE");
}
I am copying files using this method.
Input file is 10kb(356 lines) and output file
is 8kb(309 lines). It's not copying the files
completely. It is not copying last 50 lines.
Does anyone have any idea regarding this.
I will appreciate
 
Matthew Phillips
Ranch Hand
Posts: 2676
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This topic is more appropriate for the IO and Streams forum. I will move it there for you.
 
William Brogden
Author and all-around good cowpoke
Rancher
Posts: 13078
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I don't know why that is happening but your method is awfuly inefficient. By using a Reader and Writer you are doing two character conversions and by reading a char at a time there is a lot of wasted calls to system routines.
Just get the size of the file, create a byte[] that size, use FileInputStream to fill the array in one gulp, write the array with FileOutputStream.
 
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!