Hirdetés
- Sokkal jobb ajánlat lett elődjénél az iPhone 17e
- Xiaomi 17 Ultra - jó az optikája
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Poco M8 Pro 5G gyorsteszt
- MWC 2026: Adatbiztonságra fókuszáló újdonságok a Motorolától
- Jolla és SailfishOS tapasztalatcsere
- MWC 2026: Na, fussunk vele még egy kört!
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Nothing Phone 2a - semmi nem drága
- Akciófigyelő: Jelentős kedvezményekkel veheted meg a Xiaomi 17-eket
Ú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
- HP Probook 445R G6,14",FHD,AMD Ryzen 5 3500U,8GB DDR4,256GB SSD,WIN11
- Mind a új MAKULÁTLAN Apple MacBook Air 15" M2 16B RAM 256GB Magyar billentyű garancia 2026.11.14
- Lenovo ThinkPad T480s,14",FHD,i5-7300U,8GB DDR4,256GB SSD,WIN11,TOUCH
- GARANCIÁLIS ASUS TUF F16 // Intel Core 5 210H // 16GB RAM // 1TB SSD // RTX 4050
- 10genes kishibàs pc(i3-10105f/8gb/gt1030/win11/SSD/hdd)
- ÚJ Magic Keyboard billentyűzetek/ USB-C - Lighning/ 27% Áfás/ Ingyenes szállítás!
- Törött, Hibás iPhone felvásárlás!!
- AKCIÓ! MSI Thin A15 B7VE FHD Gamer notebook - R5 7535HS 16GB DDR5 512GB SSD RTX 4050 6GB W11
- Telefon felvásárlás!! iPhone 11/iPhone 11 Pro/iPhone 11 Pro Max
- Beszámítás! Sony PlayStation 5 825GB digital garanciával hibátlan működéssel
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
))
