File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
The moose likes Java in General and the fly likes FileInputStream - Replace Characters - FileInputStream Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Java in General
Bookmark "FileInputStream - Replace Characters - FileInputStream" Watch "FileInputStream - Replace Characters - FileInputStream" New topic

FileInputStream - Replace Characters - FileInputStream

Brian Agius

Joined: Oct 30, 2002
Posts: 9
I have the following situation:

I am reading an XML file using FileInputStream and contents are sent to an unmarshaller method that accepts only FileInputStream. We have recently encountereda problem whereby the ampersnad character is not accpetable to the marshaller. My idea was to create a method that reads the file, replaces the ampersand character and writes back the contents to FileInputStream which is used by the unmarsahller.

The issue is that I have not found the way to write to FileInput Stream. The following is the code I am using for testing purposes:

static FileInputStream readInput()

StringBuffer buffer = new StringBuffer();
FileInputStream fis = new FileInputStream("E:\\XYZ.XML");
InputStreamReader isr = new InputStreamReader(fis,"UTF8");

Reader in = new BufferedReader(isr);

int ch;

while ((ch = > -1)
String test = (Character.toString((char)ch));
if (test.equals("&"))
test = ".&";

return buffer.toString();

catch (IOException e)
return null;

Regards<br /> <br />BA
Ulf Dittmer

Joined: Mar 22, 2005
Posts: 42965
Indeed, it's not possible to write to an InputStream. This demonstrates the advantages of not using specific classes -like FileInputStream- in public interfaces. If the API was using the InputStream interface instead, it would be easy to filter the stream.
I agree. Here's the link:
subject: FileInputStream - Replace Characters - FileInputStream
It's not a secret anymore!