Wednesday, 15 April 2015

Can't read Data input Stream in java IO -



Can't read Data input Stream in java IO -

hi practicing java info input output stream. don't know how prepare problem can write info input stream file can't read it

here code:

public static void readdataiostream(){ datainputstream datain = null; int = 10; double d = 1023.56; boolean b = true; seek { datain = new datainputstream( new fileinputstream("test.txt")); = datain.readint(); system.out.println("reading " + i); d = datain.readdouble(); system.out.println("reading " + d); b = datain.readboolean(); system.out.println("reading " + b); d = datain.readdouble(); system.out.println("reading " + d); } grab (filenotfoundexception e) { // todo auto-generated grab block e.printstacktrace(); } grab (ioexception e) { // todo auto-generated grab block e.printstacktrace(); }try { datain.close(); } grab (ioexception e) { // todo auto-generated grab block e.printstacktrace(); } } public static void writedataiostream(){ dataoutputstream dataout = null; int = 10; double d = 1023.56; boolean b = true; seek { dataout = new dataoutputstream(new fileoutputstream("test.txt")); system.out.println("writing " + i); dataout.write(i); system.out.println("writing " + d); dataout.writedouble(d); system.out.println("writing " + b); dataout.writeboolean(b); system.out.println("writing " + 12.2 * 7.4); dataout.writedouble(12.2 * 7.4); } grab (filenotfoundexception e) { // todo auto-generated grab block e.printstacktrace(); } grab (ioexception e) { // todo auto-generated grab block e.printstacktrace(); }finally{ seek { dataout.close(); } grab (ioexception e) { // todo auto-generated grab block e.printstacktrace(); } } }

and here error :

java.io.eofexception @ java.io.datainputstream.readfully(unknown source) @ java.io.datainputstream.readlong(unknown source) @ java.io.datainputstream.readdouble(unknown source) @ bytestream.dataiostream.readdataiostream(dataiostream.java:108) @ bytestream.dataiostream.main(dataiostream.java:16) writing 10 writing 1023.56 writing true writing 90.28 reading 172003324 reading 8.029891292620447e283 reading true

please help me why can't read info input stream

dataout.write(i) writes 1 byte. yet reading int doing i = datain.readint() 4 bytes.

therefore when trying read lastly element double, there 5 bytes in stream while trying read 8 bytes (the length of double), hence exception.

since want write/read int, need phone call dataout.writeint(i) instead of dataout.write(i).

java io file-handling

No comments:

Post a Comment