// : c12:iostreamdemo.java
// typical i/o stream configurations.
// {runbyhand}
// {clean: iodemo.out,data.txt,rtest.dat}
// from 'thinking in java, 3rd ed.' (c) bruce eckel 2002
// www.bruceeckel.com. see copyright notice in copyright.txt.
import java.io.bufferedinputstream;
import java.io.bufferedoutputstream;
import java.io.bufferedreader;
import java.io.bufferedwriter;
import java.io.bytearrayinputstream;
import java.io.datainputstream;
import java.io.dataoutputstream;
import java.io.eofexception;
import java.io.fileinputstream;
import java.io.fileoutputstream;
import java.io.filereader;
import java.io.filewriter;
import java.io.ioexception;
import java.io.inputstreamreader;
import java.io.printwriter;
import java.io.randomaccessfile;
import java.io.stringreader;
public class iostreamdemo {
// throw exceptions to console:
public static void main(string[] args) throws ioexception {
// 1. reading input by lines:
bufferedreader in = new bufferedreader(new filereader(
"iostreamdemo.java"));
string s, s2 = new string();
while ((s = in.readline()) != null)
s2 += s + "/n";
in.close();
// 1b. reading standard input:
bufferedreader stdin = new bufferedreader(new inputstreamreader(
system.in));
system.out.print("enter a line:");
system.out.println(stdin.readline());
// 2. input from memory
stringreader in2 = new stringreader(s2);
int c;
while ((c = in2.read()) != -1)
system.out.print((char) c);
// 3. formatted memory input
try {
datainputstream in3 = new datainputstream(new bytearrayinputstream(
s2.getbytes()));
while (true)
system.out.print((char) in3.readbyte());
} catch (eofexception e) {
system.err.println("end of stream");
}
// 4. file output
try {
bufferedreader in4 = new bufferedreader(new stringreader(s2));
printwriter out1 = new printwriter(new bufferedwriter(
new filewriter("iodemo.out")));
int linecount = 1;
while ((s = in4.readline()) != null)
out1.println(linecount++ + ": " + s);
out1.close();
} catch (eofexception e) {
system.err.println("end of stream");
}
// 5. storing & recovering data
try {
dataoutputstream out2 = new dataoutputstream(
new bufferedoutputstream(new fileoutputstream("data.txt")));
out2.writedouble(3.14159);
out2.writeutf("that was pi");
out2.writedouble(1.41413);
out2.writeutf("square root of 2");
out2.close();
datainputstream in5 = new datainputstream(new bufferedinputstream(
new fileinputstream("data.txt")));
// must use datainputstream for data:
system.out.println(in5.readdouble());
// only readutf() will recover the
// java-utf string properly:
system.out.println(in5.readutf());
// read the following double and string:
system.out.println(in5.readdouble());
system.out.println(in5.readutf());
} catch (eofexception e) {
throw new runtimeexception(e);
}
// 6. reading/writing random access files
randomaccessfile rf = new randomaccessfile("rtest.dat", "rw");
for (int i = 0; i < 10; i++)
rf.writedouble(i * 1.414);
rf.close();
rf = new randomaccessfile("rtest.dat", "rw");
rf.seek(5 * 8);
rf.writedouble(47.0001);
rf.close();
rf = new randomaccessfile("rtest.dat", "r");
for (int i = 0; i < 10; i++)
system.out.println("value " + i + ": " + rf.readdouble());
rf.close();
}
} ///:~
// typical i/o stream configurations.
// {runbyhand}
// {clean: iodemo.out,data.txt,rtest.dat}
// from 'thinking in java, 3rd ed.' (c) bruce eckel 2002
// www.bruceeckel.com. see copyright notice in copyright.txt.
import java.io.bufferedinputstream;
import java.io.bufferedoutputstream;
import java.io.bufferedreader;
import java.io.bufferedwriter;
import java.io.bytearrayinputstream;
import java.io.datainputstream;
import java.io.dataoutputstream;
import java.io.eofexception;
import java.io.fileinputstream;
import java.io.fileoutputstream;
import java.io.filereader;
import java.io.filewriter;
import java.io.ioexception;
import java.io.inputstreamreader;
import java.io.printwriter;
import java.io.randomaccessfile;
import java.io.stringreader;
public class iostreamdemo {
// throw exceptions to console:
public static void main(string[] args) throws ioexception {
// 1. reading input by lines:
bufferedreader in = new bufferedreader(new filereader(
"iostreamdemo.java"));
string s, s2 = new string();
while ((s = in.readline()) != null)
s2 += s + "/n";
in.close();
// 1b. reading standard input:
bufferedreader stdin = new bufferedreader(new inputstreamreader(
system.in));
system.out.print("enter a line:");
system.out.println(stdin.readline());
// 2. input from memory
stringreader in2 = new stringreader(s2);
int c;
while ((c = in2.read()) != -1)
system.out.print((char) c);
// 3. formatted memory input
try {
datainputstream in3 = new datainputstream(new bytearrayinputstream(
s2.getbytes()));
while (true)
system.out.print((char) in3.readbyte());
} catch (eofexception e) {
system.err.println("end of stream");
}
// 4. file output
try {
bufferedreader in4 = new bufferedreader(new stringreader(s2));
printwriter out1 = new printwriter(new bufferedwriter(
new filewriter("iodemo.out")));
int linecount = 1;
while ((s = in4.readline()) != null)
out1.println(linecount++ + ": " + s);
out1.close();
} catch (eofexception e) {
system.err.println("end of stream");
}
// 5. storing & recovering data
try {
dataoutputstream out2 = new dataoutputstream(
new bufferedoutputstream(new fileoutputstream("data.txt")));
out2.writedouble(3.14159);
out2.writeutf("that was pi");
out2.writedouble(1.41413);
out2.writeutf("square root of 2");
out2.close();
datainputstream in5 = new datainputstream(new bufferedinputstream(
new fileinputstream("data.txt")));
// must use datainputstream for data:
system.out.println(in5.readdouble());
// only readutf() will recover the
// java-utf string properly:
system.out.println(in5.readutf());
// read the following double and string:
system.out.println(in5.readdouble());
system.out.println(in5.readutf());
} catch (eofexception e) {
throw new runtimeexception(e);
}
// 6. reading/writing random access files
randomaccessfile rf = new randomaccessfile("rtest.dat", "rw");
for (int i = 0; i < 10; i++)
rf.writedouble(i * 1.414);
rf.close();
rf = new randomaccessfile("rtest.dat", "rw");
rf.seek(5 * 8);
rf.writedouble(47.0001);
rf.close();
rf = new randomaccessfile("rtest.dat", "r");
for (int i = 0; i < 10; i++)
system.out.println("value " + i + ": " + rf.readdouble());
rf.close();
}
} ///:~
闽公网安备 35060202000074号