Hi Daniel,
As I'm a brazilian colleague, i'll not give you the fish. I'll give you the rod. Right?
You're dealing with the
I/O API of
Java. If you really a representation of your file as an object to do something, the best approach is the one that you started to think.
If you really just need the content of the file you can do something like this:
Note that the method getResourceAsStream should be used carefully, once the classloader behind it is arbitrary and in an application server or web server can access a completely different folder.
This will return an
InputStream that may be used to do whatever you want. You can create an
byte array to use as a buffer and put the bytes that you've read there. The method read will return -1 if you reached the end of the stream. So you can iterate over the inputstream filling the buffer with the data read and then writing it to an
OutputStream object like a
FileOutputStream.
This is useful when you're dealing with some I/O operation through the network once the nature of networking that can become slower and can corrupt the data if you try to send an entire and large bunch of bytes over. But how I see that you're dealing with I/O operations that access the file system directly, you can use the inputstream returned from the snippet above and call
available() method, it will return the amount of bytes available in the inputstream. You can use it to create your new byte array with the correct size of the input stream and then read it in just one call of the read method and then pass it to the
FileOutputStream.
Note that once your new file doesn't exist yet, you'll really need an instance of
File. Then you can pass to the constructor of your new instance of
FileOutputStream.
I think with this you'll be able to do what you want, and if there is missing something you can ask again or research by yourself.
Feel free to ask again! Thanks!