Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Java stream na text/bin data

Zdravím, mám aplikaci, jejíž výstupem jsou určitá data. Někdy jsou binární, někdy textová, záleží na nastavení v GUI. Tyto požadavky z uživatelské vrstvy jsou zaslány do jádra aplikace, které nějakým způsobem data vytvoří a vrátí v podobě klasického souboru (File f) zpět do GUI vrstvy, která už si s tím dále naloží dle svého. Jelikož ale chci, aby jádro bylo pořád stejné a mohlo být použito na různé GUI vrstvy (java web aplikace, klasická desktop aplikace, ...), potřebuji, aby jádro vrátilo na data pouze nějaký input stream, ze kterého by si GUI vrstva data četla a dále s nimi nějak nakládala.
Nyní, jak už jsem psal, jádro vytvoří chtěný soubor v temporary adresáři a ten vrátí. Já ale nechci, aby se vygenerovaná data musela někam ukládat, chci, aby jádro vrátilo nějaký stream na místo v RAM, kde jsou data vygenerována.
A teď dotazy:
1) abych mohl vytvořit input stream na něco, z čeho chci číst, musím nějakým output streamem to někam zapsat - ale kam, resp, jak do paměti, když cílem je vždy nějaký soubor? (nebo jiný způsob neznám)
2) některá data jsou binární a některá textová - nelze tedy použít buď pouze znakové nebo binární streamy - neboli vrátit nějakého rodiče (znakové a binární streamy jsou potomci), kde až v GUI si rozliším, jestli ten stream je znakový nebo binární a podle toho z něj budu číst
3) našel jsem třídu PipedReader, která má v konstruktoru jeden parametr typu PipedWriter - což je přesně to (jestli to dobře chápu), co bych potřeboval - číst to, co je zapsáno v RAM, ne na disku. Jenže obě tyto třídy jsou pouze znakově orientované.

Nejlépe najít podobnou třídu, akorát pro binární data. Potom bych společného rodiče vrátil z jádra do gui, které by si s tím dál naložilo podle svého.

Snad jsem to napsal pochopitelně.

Díky.

Předmět Autor Datum
Nejlépe najít podobnou třídu, akorát pro binární data. PipedInputStream / PipedOutputStream.
x22 30.11.2013 21:05
x22
Skvělý, tak na to jsem nenarazil. Má to ale vůbec nějakého společného rodiče? Abych mohl z jádra vrá… poslední
freez2 30.11.2013 21:11
freez2

Skvělý, tak na to jsem nenarazil. Má to ale vůbec nějakého společného rodiče? Abych mohl z jádra vrátit jeden typ? Když mám např. metodu export(), jejíž návratový typ bude právě ta pajpa na ty data v paměti... V GUI už si sám rozliším, jestli je to PipedInputStream nebo PipedReader.

Zpět do poradny Odpovědět na původní otázku Nahoru