eli olis tällänen koodin pätkä:
String lukuStr = JOptionPane.showInputDialog( "Anna joku kokonaisluku(lopetus=Enter):"); fout = new FileOutputStream("C:\\temp\\data.bin"); while (!"".equals(lukuStr)) { luku = Integer.parseInt(lukuStr); fout.write(luku); lukuStr = JOptionPane.showInputDialog( "Anna jokin kokonaisluku"); } fout.close(); try { fin = new FileInputStream ("C:\\temp\\data.bin"); int y = fin.read(); while(y !=-1){ System.out.println(y); } fin.close(); System.out.println(y);
eli pitäis saada toi alempi while lauseke tulostamaan kaikki annetut arvot ja lopettamaan arvojen jälkeen.
Javaa en tähän hätään muista tarpeeksi hyvin jotta osaisin neuvoa toimivan koodinpätkän. Ongelma näyttäisi olevan siinä, että y:lle annetaan vain kerran arvo ja sitä verrataan lukuun -1. Sinun pitäisi siis while-silmukassa lukea y:lle seuraava merkki ja vertailla tätä uudelleen arvoon -1. Koneessani ei ole tällä hetkellä asennettuna Javaa joten en pääse kokeilemaan esimerkkiäsi.
Kokeilepa näin:
String lukuStr = JOptionPane.showInputDialog( "Anna joku kokonaisluku(lopetus=Enter):"); try { fout = new FileOutputStream("C:\\temp\\data.bin"); while (!lukuStr.equals("")) { luku = Integer.parseInt(lukuStr); fout.write(luku); lukuStr = JOptionPane.showInputDialog( "Anna jokin kokonaisluku"); } fout.close(); fin = new FileInputStream ("C:\\temp\\data.bin"); int y = fin.read(); while(y !=-1){ System.out.println(y); y = fin.read(); } fin.close(); } catch (Exception e) { e.printStackTrace(); }
EDIT: Hieman suurempaakin remonttia koodiin... Katso virheenkäsittelyä sekä while-looppia, oli tylsää :)
toimii :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.