Problem z polskimi znakami

0

Napisałem aplikacje odczytująca dane z plików tekstowych i wyświetlające je w tabelach etc...
Używam NetBeans 6.7 gdy tensam program odpalam z pośrednictwem NetBeans wszystko jest ok. Jednak dy uruchomie to bezpośrednio z pliku jar za pomoca Java TM Platform SE Binary po pierwsze nie mam polskich znaków, po kolejne nie wyświetlają mi sie dane w tabelkach. Nie wiem co jest grane. Jaka na to rada Może jakoś zle odpalam te aplikacje ?

0

Przeinstalowałem wszystkie javy jakie mam na nowsze, zrobiłem test na innym komputerze. Jest identycznie, odpalam z Netbeansa działa odpalam z pliku jar, nie wyświetla mi polskich znaków w polach combi, winiach tebeli(Abstract Table Mode). Co ciekawe Polskie znaki sa np w napisach zadeklarowanych. Nie wyświetla ich jedynie gdy musi dane zimportowac z pliku tekstowego. Nigdy wcześniej nie robiłem tekstówek, może musze jakieś kodowania ustawic. ?????????? Jak co sie robi, może jakieś pomysły bo ja ich nie ma

0

Powalczyłem jeszcze troche, i odkryłem że gdy usune wszystkie dane z plików i zaczne zapisywac na czysto to działa, Jednak jak te zapisane dane otworze w programie uruchamianym za pośrednictwerm Netbeans zamiast polskich znaków wyskakuja jakieś kwadraty. No i juz nic z tym nie zrobie.
I tak jest tez odwrotnie. to co zapisze za posrednictwem NetBeansa nie moge odczytac przy programie uruchamianym bezpośredni z jar (nie ma polskich znaków tylko jakieś krzaki) Co robic jakas różnica kodowań?

Hellllllllllp ? ;)

0

W momencie gdy czytasz plik to ustaw kodowanie strumienia na UTF-8.

0

A jak to sie robi? Jakiś przykład może?

Mam klase odpowiedzialna za zapis i odczyt:

public final class EmployeeListDecorator4 {
        public static boolean saveList(Collection<Zlecenie> zlecenia, String fileName) {
                PrintWriter writer = null;
                try{
                        writer = new PrintWriter(new BufferedWriter(new FileWriter(fileName)));
                        for (Zlecenie zlecenie : zlecenia)
                            {
                                writer.println(zlecenie.get_numer());
                                writer.println(zlecenie.get_data_przyjecia());
                                writer.println(zlecenie.get_przyjal());
                                writer.println(zlecenie.get_serwisuje());
                                writer.println(zlecenie.get_data_realizacji());
                                writer.println(zlecenie.get_apteka());
                                writer.println(zlecenie.get_status());
                                writer.println(zlecenie.get_cel());
                                writer.println(zlecenie.get_rozwiazanie());
                            }
                        return true;
                } catch(IOException exc) {
                        exc.printStackTrace();
                        return false;
                } finally {
                        if(writer != null) {
                                writer.flush();
                                writer.close();
                        }
                }
        }

        public static Collection<Zlecenie> readList(String fileName) {
                BufferedReader reader = null;
                try {
                        reader = new BufferedReader(new FileReader(new File(fileName)));
                        ArrayList<Zlecenie> list = new ArrayList<Zlecenie>();
                        String line  = null;
                        String line1 = null;
                        String line2 = null;
                        String line3 = null;
                        String line4 = null;
                        String line5 = null;
                        String line6 = null;
                        String line7 = null;
                        String line8 = null;
                        while((line = reader.readLine()) != null)
                        {
                               line1=reader.readLine();
                               line2=reader.readLine();
                               line3=reader.readLine();
                               line4=reader.readLine();
                               line5=reader.readLine();
                               line6=reader.readLine();
                               line7=reader.readLine();
                               line8=reader.readLine();

                               list.add(new Zlecenie(line,line1,line2,line3,line4,line5,line6,line7,line8));
                        }
                        return list;
                } catch(IOException exc) {
                        exc.printStackTrace();
                        return null;
                } finally {
                        if(reader != null) {
                                try {
                                        reader.close();
                                } catch (IOException e) {
                                        e.printStackTrace();
                                }
                        }
                }
        }
}

A odczytuje tak :

final String fileName_zlecenia = "C:/Firma3/zlecenia.txt";
  ArrayList <Zlecenie> zlecenia = new ArrayList<Zlecenie>();

//--------------------------------------------------------------------------
sam odczyt:

zlecenia = new ArrayList<zlecenie>(EmployeeListDecorator4.readList(fileName_zlecenia));


Póżniej dane trafiaja do array listy:

dane=new String[zlecenia.size()][10]; //wiersze, kolumny
for (int i=0;i<zlecenia.size();i++)
{
for (int j=0;j<9;j++)
{
dane[i][0]=zlecenia.get(i)._numer;
dane[i][1]=zlecenia.get(i)._data_przyjecia;
dane[i][2]=zlecenia.get(i)._przyjal;
dane[i][3]=zlecenia.get(i)._serwisuje;
dane[i][4]=zlecenia.get(i)._data_realizacji;
dane[i][5]=zlecenia.get(i)._apteka;
dane[i][6]=zlecenia.get(i)._status;
dane[i][7]=zlecenia.get(i)._cel;
dane[i][8]=zlecenia.get(i)._rozwiazanie;
}
if(zlecenia.get(i)._status.equals("Zamknięte")){wielkosc_tabeli++;}
}
//-----------------------------------------------------------------------
wielkosc_tabeli=zlecenia.size()-wielkosc_tabeli;
dane2=new String[wielkosc_tabeli][10]; //wiersze, kolumny

  for (int i=0;i<zlecenia.size();i++)
      {
       if((zlecenia.get(i)._status.equals("Zakończone"))||(zlecenia.get(i)._status.equals("Przyjęte"))||(zlecenia.get(i)._status.equals("Serwisowane")))
            {
                for (int j=0;j<9;j++)
                    {
                     dane2[licznik][j]=dane[i][j];
                     }
                licznik++;
              }
       }

zapis to :

if(EmployeeListDecorator4.saveList(zlecenia, fileName_zlecenia))
            {System.out.println("Zapisalem liste pracownikow...");}
       else {System.out.println("Nie udalo sie zapisac listy pracownikow.");return;}

Jak się robi to kodowanie, nigdy tego nie robiłem ;/

0

Zrobiłem coś takiego przy odczycie:

reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName),"UTF8"));

Ale nie działa ;/

0

No pewna zmiana jest, teraz to co zapisze przez NetBeansa moge odczytać odpalajac jar. Ale to co zapisze przez jar nie mogę odczytać w ponownie odpalajac jar. Ale krok w dobra strone co dalej?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0