[JAVA] Pakowanie plików w jarze

0

Witam.
Niedawno zrobiłem sobie programik, który korzysta z pewnego pliku tekstowego. Wiem, że to elementarne pytanie, ale mimo to chciałem się poprosić o wytłumaczenie mi pewnej rzeczy. W tej chwili plik *.txt musi być w tym samym folderze co plik *.jar. Jak mogę zrobić, aby plik tekstowy był w jarze i również program z niego korzystał?
Starałem się szukać odpowiedzi, ale nie bardzo wiedziałem jak określić to pakowanie i po długich godzinach poszukiwań, zwracam się o pomoc tutaj.

Nie podaję kodu, gdyż chyba to nie jest potrzebne. Do odczytywania pliku korzystam z FileReadera oraz bufferedReader (mam nadzieję, że dobrze podałem nazwach tych dwóch metod) .

0

Wrzuc plik txt do katalogu glownego jara, obok katalogu META-INF, a w kodzie ktory go wymaga zamiast wczytywania pliku zrob:
JakasKlasaZJara.class.loadResourceAsStream("/mojpliktxt.txt");

0

w moim przypadku loadResourceAsStream nie dziala, zamist tego uzylem getResourceAsStream i jest ok

0

hmm... Próbowałem to wstawić na kilka sposobów, ale mi nie robi.

Przypuśćmy, że mam kawałek kodu:

 FileReader fr1 = new FileReader("baza.txt");
			  BufferedReader bw1 = new BufferedReader(fr1);
			  String s1;
			  int i = 0;
			  
			while ((s1 = bw1.readLine()) != null)
			  {					  
					  i=i+1;
					  if (s1.equals("licznik") == true)
				  	  {						  
						  Textlicznik.setText(Integer.toString(i-1)); 
						  break;
				  	  }
				  
					  else
					  {
						  Textlicznik.setText("N/A");
					  }
			  }			
			fr1.close();

Gdzie i jam mam wstawić

slownik.class.getResourceAsStream("/baza.txt");

0

Racja, metoda nazywa sie getResourceAsStream(), moj blad, sory.

InputStreamReader in = new InputStreamReader(JakasKlasaZJara.class.getResourceAsStream("/baza.txt");
BufferedReader bw1 = new BufferedReader(in);
String s1;
int i = 0;

                    while ((s1 = bw1.readLine()) != null)
                      {                                         
                                      i=i+1;
                                      if (s1.equals("licznik") == true)
                                        {                                                 
                                              Textlicznik.setText(Integer.toString(i-1));
                                              break;
                                        }
                             
                                      else
                                      {
                                              Textlicznik.setText("N/A");
                                      }
                      }                       
                    in.close();

Cos takiego.

0

Działa. Wielkie dzięki za pomoc.

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