# wie schreibt man String Content in IFile zurück?



## Wurzelseppi (12. Januar 2007)

Hallo zusammen,

ich habe folgenden Code, welcher mir den Inhalt aus einer FileResource in Eclipse auslesen soll, dort was ändert, und später wieder reinschreibt und abspeichert.


```
StringBuffer fContents = new StringBuffer();
		StringBufferInputStream sbis_fContent = null;

		InputStreamReader isr = null;

		try {

			isr = new InputStreamReader(file.getContents());
			int c;
			while ((c = isr.read()) != -1) {
				fContents.append((char) c);
			}

			String strContents = fContents.toString();

			

			sbis_fContent = new StringBufferInputStream(strContents);

			file.setContents(sbis_fContent, true, true, null);
			
			
		} finally {
			if (isr != null)
				isr.close();

			if (sbis_fContent != null)
				sbis_fContent.close();
			
		}
```

der StringBufferInputStream ist aber deprecated. Wie kann ich es den sonst noch machen?

Vielen Dank für Antwort.

Gruß,

Wurzelseppi


----------



## Thomas Darimont (13. Januar 2007)

Hallo!

So gings auch:

```
...
IFile file = (IFile)structuredSelection.getFirstElement();
        System.out.println(file);
        try {
            StringBuilder stringBuilder = new StringBuilder();
            Scanner scanner = new Scanner(file.getContents());
            while(scanner.hasNextLine()){
                stringBuilder.append(scanner.nextLine()+"\n");
            }
            scanner.close();
            stringBuilder.append("YXZ\n");
            try {
                file.setContents(new ByteArrayInputStream(stringBuilder.toString().getBytes("UTF-8")),true,true,null);
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
        } catch (CoreException e) {
            e.printStackTrace();
        }
...
```

Gruß Tom


----------



## Wurzelseppi (15. Januar 2007)

Hi,

sorry, hab vergessen zu erwähnen, daß ich leider auf JDK 1.4 beschränkt bin. D.h StringBuilder geht ned :-(


----------



## Thomas Darimont (15. Januar 2007)

Hallo,

dann nimm eben einen StringBuffer, ging ja in dem Beispiel eher um den ByteArrayInputStream ;-)

Gruß Tom


----------

