Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem kódování Eclipse

Zdravím, potřebuji zpracovat data v textovém souboru, ale někde musí být problém s kódováním. V texťáku jsou klasicky znaky s háčkama a čárkama, takže po načtení slova "čtení" mám v eclipsu zajímavé znaky.

Kde to prosím změním? Určitě to musí jít. K načítání používám BufferedReader.
Díky

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Dej sem kód i texťák.
MaSo 06.09.2012 17:51
MaSo
Zdroje
freez 06.09.2012 18:47
freez
No jaký máš přesně problém? Kromě toho, že to je prasárna tam žádný problém nevidím. Vše mi funguje.
MaSo 06.09.2012 20:12
MaSo
Co tam je prasárna? Neprogramuju 10let... V debug módu když si krokuji načítání různých řádek tak u…
freez 06.09.2012 23:11
freez
som ten tvoj vytvor stiahol, a google nasiel za sekundu: http://docs.oracle.com/javase/1.4.2/docs/ap…
MM.. 07.09.2012 02:40
MM..
A jak tedy prosím to napravit?: BufferedReader vstup = new BufferedReader(new InputStreamReader(????…
freez 07.09.2012 14:57
freez
mam to brát jako problém vyřešen? ak si si isty ze v kazdom systeme bude default enviroment taky ze… nový
MM.. 07.09.2012 16:11
MM..
Právě že ten soubor bude asi vždy v tom UTF-8... Já tedy použiji ten InputStreamReader... Můžeš mi p… nový
freez 07.09.2012 19:30
freez
1) Neráčil jsi zmínit OS. Takže se poradit moc nedá, mně to na XP funguje správně. 2) Kód je prasárn…
MaSo 07.09.2012 08:28
MaSo
Windows 7 Professional 32bit, nečekal jsem že je to důležité. Třída událost není hotová, protože jse…
freez 07.09.2012 14:53
freez
Scanner používat nechci, protože při velkých datech zpomaluje program. No comment. :-D Taxi to uděl…
MaSo 07.09.2012 16:08
MaSo
No tak já nevim, jak je to lepší... Dělali jsme na to testy (které tak vyšly) a učili jsme se to tak… nový
freez 07.09.2012 19:22
freez
A tobě jde o rychlost? Vždyť v tom souboru je asi 20 řádků. Nebo tam budeš mít nakonec gigový texťák… nový
MaSo 07.09.2012 19:25
MaSo
Nechal jsem tam jednu událost, protože ostatní nikoho nemusejí zajímat (pokud by byl zvědavej). nový
freez 07.09.2012 19:27
freez
Pochop, že i kdyby ten soubor měl 1MB, tak rozdíl mezi načítáním přes Scanner a tím Readerem bude v… nový
MaSo 07.09.2012 19:29
MaSo
Tak já to udělám přes ten Scanner. nový
freez 07.09.2012 19:31
freez
A datum jako String nevím jinak, protože konstruktory ve třídě Date nejsou doporučovány a je to nahr…
freez 07.09.2012 14:55
freez
Ach jo. Date klidně používej, ničemu to nevadí. Jenom je třeba davát pozor na to, že není immutable,…
MaSo 07.09.2012 16:09
MaSo
Proč ach jo? Tak to nevím, ne? Tak říkáš, že to je v pohodě, i když ho nedoporučují? Není immutable?… nový
freez 07.09.2012 19:25
freez
Normálně používej Date. Jenom nikdy nevracej/neukládej odkaz na originál ale na kopii objektu. Něco… poslední
MaSo 07.09.2012 19:46
MaSo

Co tam je prasárna? Neprogramuju 10let... V debug módu když si krokuji načítání různých řádek tak u slova s "č" mam prostě místo "č" znaky, tudíž když to budu chtít někam vypsat, tak to nebude v pořádku.
Jinak jsem po Tobě nechtěl ať mi zkontroluješ jestli program běží, ale chybu v kódování.

som ten tvoj vytvor stiahol, a google nasiel za sekundu:
http://docs.oracle.com/javase/1.4.2/docs/api/java/ io/FileReader.html

The constructors of this class assume that the default character encoding and the default byte-buffer size are appropriate. To specify these values yourself, construct an InputStreamReader on a FileInputStream.

takze pouzi InputStreamReader namiesto FileReader, a daj mu tam do parametra kodovanie v ktorom je ten textak

A jak tedy prosím to napravit?:
BufferedReader vstup = new BufferedReader(new InputStreamReader(?????, "UTF-8"));

Jinak jsem ještě zkoušel uložit ten texťák s kódováním ANSI (původně UTF-8) a šlo to - mam to brát jako problém vyřešen?

mam to brát jako problém vyřešen?

ak si si isty ze v kazdom systeme bude default enviroment taky ze to bude chciet single byte character tak ano.

Ked to chces naisto a mas textak v pevnom kodovani vzdy tak je lepsie pouzit ten InputStreamReader. Co tam mas dat viz google alebo referencie tvojho jazyka. Nauc sa pouzivat referencne prirucky (dnes uz toho je na google plno)

1) Neráčil jsi zmínit OS. Takže se poradit moc nedá, mně to na XP funguje správně.
2) Kód je prasárna celý. Třída Udalost je k ničemu, protože z ní nejdou nijak vyčíst data. Ukládat datum do Stringu taky není nejlepší nápad.
3) Jestli chceš specifikovat kódování při načítání ze souboru, použij třídu Scanner.

Windows 7 Professional 32bit, nečekal jsem že je to důležité. Třída událost není hotová, protože jsem na celém projektu dělal půl hodiny a hned toto mi zarazilo, tam getry a setry a spousta dalších metod teprve přibyde. Scanner používat nechci, protože při velkých datech zpomaluje program.

Ach jo. Date klidně používej, ničemu to nevadí. Jenom je třeba davát pozor na to, že není immutable, což bude asi důvod proč, není doporučována. Je to určitě lepší, než mít datum ve Stringu. Co když budeš chít dva datumy porovnat? Tu metodu bych nechtěl vidět...:-D

Proč ach jo? Tak to nevím, ne? Tak říkáš, že to je v pohodě, i když ho nedoporučují? Není immutable? Tzn. (jestli si dobře vzpomínám), tak lze atributy měnit po vytvoření objektu? Ten String mi přišel jako jediná náhrada toho...Leda pak si udělat extra třídu Datum?

Normálně používej Date. Jenom nikdy nevracej/neukládej odkaz na originál ale na kopii objektu. Něco jako:

class A {
  private final Date datum;
  
  public A (Date datum){
     // null check by byl fajn  :-)
     this.datum = new Date(datum.getTime()); 
  }

  public getDatum(){
    return new Date(datum.getTime());
  }
}

A budeš mít jistotu, že nikdo nemá odkaz na objekt Date, který je ve fieldu třídy A. Takže ti ho nikdo nezmění pod rukama.

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