Hirdetés
- gban: Ingyen kellene, de tegnapra
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- mefistofeles: Az elhízás nem akaratgyengeség!
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- GoodSpeed: Daikin FTXF35E / RXF35F Sensira 3,3 kW Inverteres klíma - a Sztori
- gerner1
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Gurulunk, WAZE?!
Új hozzászólás Aktív témák
-
thon73
tag
Hátha mást is érdekel, itt a rövid logikája a próbának; egyszerűség kedvéért file helyett stringek, hibakezelés és optimalizálás nélkül. 'c' átalakítása az első ciklusba, a kiírás elé kerülhet. (ed1-ed2-ed3 egyszerűen három EditText. ed2 csak azért kódol ISO-8859-1-et, hogy lássam, hogyan is kerülnek kiírásra a byte-ok.)
Kifelejtettem a lényeget: ed1 (UTF-16 String) -> outputStream==inputStream (UTF-8 byte-array) -> ed3 (UTF-16 String). Tehát oda-vissza elvégzi az átalakítást, és nem String-gel (bár abból indul), hanem Character-folyammal dolgozik.int c;
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream, "UTF-8");
StringReader stringReader = new StringReader( ed1.getText().toString() );
while ( (c=stringReader.read()) != -1 )
{
outputStreamWriter.write( c );
}
outputStreamWriter.close();
ed2.setText( outputStream.toString("ISO-8859-1") );
ByteArrayInputStream inputStream = new ByteArrayInputStream( outputStream.toByteArray() );
InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "UTF-8");
StringWriter stringWriter = new StringWriter();
while ( (c=inputStreamReader.read()) != -1 )
{
stringWriter.write( c );
}
stringWriter.close();
ed3.setText( stringWriter.toString() );Érdekes, hogy keresgélés közben StraemReader/Writer osztályokat is átfutottam, de nem ugrott be, hogy erre van szükségem. ((Hát, látszik, hogy nem a javaba "nőttem bele", ráadásul évekig nem írtam semmi komolyat.
))A replaceEach is jó ötlet, (és ezzel visszajutottunk a túloptimalizáláshoz.) Ha legyártok egy új string-et, ami már az átalakított részeket tartalmazza, akkor áttekinthetőbbé válik a kód, ill. a fenti helyett a mentést is egy sorban meg tudom oldani. Nem nagy ár ezért az új string létrehozása, akkor sem ha több ezerszer történik meg.
Köszönöm a segítséget, az eredetitől gyökeresen eltérő logikájú kód született, de sokkal szebb, és jobb. Nem végeztem még méréseket, de nem tűnik nagyságrendekkel lassúbnak. (Gondolom, az SD kártya sebessége lesz a meghatározó...)
Új hozzászólás Aktív témák
- PlayStation 5
- gban: Ingyen kellene, de tegnapra
- exHWSW - Értünk mindenhez IS
- Revolut
- Android alkalmazások - szoftver kibeszélő topik
- Motorola Signature - mielőtt aláírnád...
- Eredeti játékok OFF topik
- Világ Ninjái és Kódfejtői, egyesüljetek!
- Assetto Corsa Rally
- World of Tanks - MMO
- További aktív témák...
- ÚJ MSI Katana 15 HX - 15.6" QHD 165Hz - i7-14650HX - 16GB - 1TB - RTX 5060 - Win11 - 3 év gari - HUN
- DELL Latitude 3380,13.3",HD,i3-6006U,8GB DDR4,128GB SSD,WIN10
- Garanciális Lenovo Legion Pro 5 // AMD Ryzen 9 8945HX // 32GB RAM // 2TB SSD // RTX 5060
- Pioneer-Panasonic-Sony
- ÚJ Lenovo LOQ 17IRX10 - 17.3"FHD 165Hz - i7-13650HX - 24GB - 1TB - RTX 5060 - Win11 - 3 év gari - HU
- iPhone 15 Plus 128GB Black -1 ÉV GARANCIA - Kártyafüggetlen, MS4271
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- Apple iPhone 12 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! 1TB Samsung 870 QVO 2,5" SATA SSD meghajtó garanciával hibátlan működéssel
- Eladó Xiaomi Redmi 15 6/128GB fekete / 12 hó jótállás
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
))