# ByteArray in File schreiben?



## c0CoKabAnA (25. Mai 2007)

Hi!
Und zwar habe ich ein kleines Problem 

und zwar muss ich für die schule ein verschlüsselungs programm entwickeln!
so weit funktioniert auch alles! 

also erstmal zur erklärung vom programm:

ich lese eine File ein und verwandle den eingelesenen strin zu einem byte array um die bytes zu vershclüsseln!

dann bekomme ich neue bytes zurück in denen natürlich ein zeichen wirrwarr drinnen steht wenn ichs zu nem string zurückwandle!

doch wenn ich dann wieder den string zurück umwandle ergibt es durch das zeichenwirrwar irgendwelche fehler...



SO JETZT ZUM EIGENTLICHEN PROBLEM:

wie kann ich ein byte[] direkt in eine file schreiben ohne es zu nem String umzuwandeln?

hoffe ihr könnt mir helfen  ist warscheinlich auch gar nicht so schwer nur irgendwie weiß ich nicht weiter 

mfg


----------



## SlaterB (25. Mai 2007)

ByteOutputStream?
Java lernen?

http://www.galileocomputing.de/open...12_003.htm#mjf9500d4206599d13f489597170fae81c


----------



## c0CoKabAnA (25. Mai 2007)

Also ich kenn keine ByteOutputStream...
und die javadoc auch nich -.-

nur halt ByteArrayOutputStream!
den hab ich vorher auch shcon gesehen aber:
man kann dem Construktor vom Byte[]OutputStream keine File übergeben sondern nur einen int wert => man kannst nirgends hinspeichern...

habs auch shcon mit dem FileOutputStream probiert! rein theoretisch dürfte es mit dem klappen aber bei mir kommt immer eine nullpointer exception!

Hier der code:


```
File file = new File("c:\\temp\\test.txt");
            
            FileOutputStream fos;
            
            try {               
              
                fos = new FileOutputStream(file);
              
              fos.write(text);
            } 
            catch(Exception e) {
                e.printStackTrace();
            }
```

hier die Exception:



> java.lang.NullPointerException
> at java.io.FileOutputStream.write(FileOutputStream.java:247)
> at gui.Speichern.<init>(Speichern.java:40)
> at gui.Hauptfenster.actionPerformed(Hauptfenster.java:117)
> ...


----------



## SlaterB (25. Mai 2007)

man kann die Streams kombinieren, da gibts ein richtiges System 
(wenn man denn mal lesen dürfte, falls ich das trotz meines Tippfehlers noch anmerken darf  )

new ByteArrayOutputStream(fileoutputStream)
und da gibts dann eine Operation für ein byte-Array, nehme ich stark an

---------

aber mit FileOutputStream ja auch,
bei mir klappts, ist text auch ganz sicher nicht null bei dir?..


```
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        File file = new File("c:\\temp\\test.txt");

        FileOutputStream fos;
        byte[] text = new byte[]
            {3, 4, 5};
        try
        {

            fos = new FileOutputStream(file);

            fos.write(text);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
    }
}
```


----------



## c0CoKabAnA (25. Mai 2007)

Okay hat sich erledigt -.-
hatte nur nen kleinen denk fehler....

thx trotzdem


----------

