![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 31.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Wiem, że forum to nie jest nastawione na technologie jak java, jednak jestem w tak poważnej kropce, że warto z mojej strony zaryzykować pytaniem. Otóż 21 maja piszę maturę z informatyki, właśnie w javie. (pierwszy raz w historii jest java na maturze:P) Niestety mogę nie wypaść zbyt ładnie, bo mam problem z zapisem do pliku. Szczerze to nie wiem jak to jest pod windowsem, jednak pod linuxem jest problem... Pokaże wam tutaj kod źródłowy mojego programu do analizy różnic pomiędzy odczytem a zapisem oraz logi jakie mi zwrócił... TestPliku.java: Kod import java.io.*; import java.util.*; import java.lang.*; class dataOp Kod class dataOp { String[] fData = new String[ 1000 ]; public int loadFile( String loadPath ) throws IOException { BufferedReader bReader = new BufferedReader( new FileReader( new File( loadPath ))); String nextLine = null; int index = 0; while( (nextLine = bReader.readLine() ) != null ) { try { if( nextLine.toString().length() > 0 ) { this.fData[ index ] = nextLine.toString(); ++index; } } catch( NullPointerException exc ) {} } /* Zwaraca kontrolnie ile wierszy zostało odczytanych */ return index; } public int saveFile( String savePath, String[] toFileData ) throws IOException { PrintWriter pWriter = new PrintWriter( new FileWriter( savePath )); int index = 0; int howManyLinestoFile = toFileData.length; for( int i = 0; i < howManyLinestoFile; ++i ) { try{ if( toFileData[ i ].toString().length() > 0 ) { pWriter.println( toFileData[ i ].toString() ); ++index; } } catch( NullPointerException exc ) {} } /* Zwraca kontrolnie ile wierszy zostało odczytanych */ return index; } public int countFileLines( String countedFile ) throws IOException { BufferedReader bReader = new BufferedReader( new FileReader( new File( countedFile ))); String nextLine = null; int countLines = 0; while( (nextLine = bReader.readLine() ) != null ) { try { if( nextLine.toString().length() > 0 ) { ++countLines; } } catch( NullPointerException exc ) {} } /* Zwraca ilość lini w pliku */ return countLines; } } class SprawdzPlik Kod class SprawdzPlik { private dataOp dO; public void checkFiles( String loadPath, String savePath ) throws IOException { dO = new dataOp(); int howManyLinesLoaded = dO.loadFile( loadPath ); int howManyLinesSaved = dO.saveFile( savePath, dO.fData ); int countLinesinSavedFile = dO.countFileLines( savePath ); System.out.println( "Wczytano " + howManyLinesLoaded + " lini z pliku " + loadPath + ", do pliku " + savePath + " zapisano " + howManyLinesSaved + " lini, a w zapisywanym pliku znajduje sie obecnie " + countLinesinSavedFile + " linii."); } } public class TestPliku Kod public class TestPliku { public static void main( String[] args ) throws IOException { SprawdzPlik sprawdzajPlik = new SprawdzPlik(); BufferedReader consoleReader = new BufferedReader( new InputStreamReader( System.in )); String loadPath = null; String savePath = null; System.out.println( "Podaj sciezke bezwzgledna do pliku, ktory ma byc odczytany." ); loadPath = consoleReader.readLine(); System.out.println( "Podaj sciezke bezwzgledna do pliku, w ktory ma byc zapisana tresc wczytywanego pliku." ); savePath = consoleReader.readLine(); sprawdzajPlik.checkFiles( loadPath, savePath ); System.exit( 1 ); } } Jestem wprost pewny, że błąd jest z mojej winy. Z mojego doświadczenia wynika, że komputer w takich kwestiach się raczej nie myli. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Jeszcze jedna prośba - jeśli ktoś z forumowiczów siedzi w Javie - mógłby mi wytknąć błędy w architekturze? Jestem na tyle początkujący, że wszelka krytyka jest wskazana. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Logi jakie zwraca program: Kod czolg@ubuntu:~/java/files$ java TestPliku Podaj sciezke bezwzgledna do pliku, ktory ma byc odczytany. /home/czolg/java/slowa.txt Podaj sciezke bezwzgledna do pliku, w ktory ma byc zapisana tresc wczytywanego pliku. /home/czolg/java/testpliku.txt Wczytano 1000 lini z pliku /home/czolg/java/slowa.txt, do pliku /home/czolg/java/testpliku.txt zapisano 1000 lini, a w zapisywanym pliku znajduje sie obecnie 526 linii. Kod czolg@ubuntu:~/java/files$ java TestPliku Podaj sciezke bezwzgledna do pliku, ktory ma byc odczytany. /home/czolg/java/testPliku/slowa1.txt Podaj sciezke bezwzgledna do pliku, w ktory ma byc zapisana tresc wczytywanego pliku. /home/czolg/java/testPliku/slowa1Wynik.txt Wczytano 10 lini z pliku /home/czolg/java/testPliku/slowa1.txt, do pliku /home/czolg/java/testPliku/slowa1Wynik.txt zapisano 10 lini, a w zapisywanym pliku znajduje sie obecnie 0 linii. Są one troszkę sprzeczne... Pozdrawiam i z góry dziękuje za odpowiedź, czolgmc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 05:57 |