/** * Buffered Stream * * Demonstrates how to read from and write to a buffered stream. */ method main () { // create temp file and open for writing path = System.IO.File.temp_name() file = System.IO.FileStream.new(path, "w", "t", "r") // create buffered output stream stream = System.IO.BufferedStream.new(file) // build data (5000 'A's followed by 5000 'Z's) data = String.new() for (i; 0..10000) { if {i < 5000 ? data.append("A") } else { data.append("Z") } } // write 5000 'A's to to buffered output stream stream.write(data, 0, 5000) // write 5000 'Z's to to buffered output stream stream.write(data, 5000, 5000) // close output stream stream.close() // open temp file for reading file = System.IO.FileStream.new(path, "r", "e", "r") // create buffered input stream stream = System.IO.BufferedStream.new(file) data = String.new() // read first 5000 bytes from buffered input stream into data stream.read(data, 0, 5000) // print first byte, should be 'A' print(data[0]) // read next 5000 bytes from buffered input stream into data stream.read(data, 0, 5000) // print first byte, should be 'Z' print(data[0]) // close input stream stream.close() // delete temp file System.IO.File.delete(path) } try { main() } else { print(last_excp()) }