1、关于和OutputStream类中的"input"和"output"的含义该如何解释,
2、"input"和"output"是针对谁进行input和output
3、什么时候该用InputStream,什么时候用outputStream;
先谢谢最好能具体一点!!!!
2、"input"和"output"是针对谁进行input和output
3、什么时候该用InputStream,什么时候用outputStream;
先谢谢最好能具体一点!!!!
//Typical I/O stream configurations.
//{RunByHand}
//{Clean: IODemo.out,Data.txt,rtest.dat}
import com.bruceeckel.simpletest.*;
import java.io.*;public class IOStreamDemo {
private static Test monitor = new Test(); // Throw exceptions to console:
public static void main(String[] args) throws IOException {
// 1. Reading input by lines:
BufferedReader in = new BufferedReader(new FileReader(
".\\src\\bruceeckel\\IOStreamDemo.java"));
String s, s2 = new String();
StringBuffer sb = new StringBuffer();
while ((s = in.readLine()) != null)
sb.append(s+"\n");
//s2 += s + "\n";
s2 = sb.toString();
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();
monitor.expect("IOStreamDemo.out");
}
} // /:~
只有write和read?OutputStream输出流,比如写文件,或者输出到网络流。
write()方法即体现出OutputStream的重点是写
This abstract class is the superclass of all classes representing an output stream of bytes. An output stream accepts output bytes and sends them to some sink.
InputStream 输入流,比如从文件读出来,或者从网络流读出数据
read()方法即体现出InputStream的重点是读
This abstract class is the superclass of all classes representing an input stream of bytes.
举个例子:就比如对文件操作,读取文件内容时用InputStream类、向文件写入文件时用OutputStream类。
简单来说就是这样!
InputStream 输入流,
你要把东东在程序里面读到就用input,把程序里面的结果要输出到外面就output
对 Stream 而言也就是标识了“数据流向”数据流可能在显存、内存、文件、端口…之间“流动”
关于输入输出的划分似乎总是按照某些惯例,比如
联网数据通讯,本机端口收包为端口 input,发包为端口output;
对单机而言,数据载入内存为input,数据持久化到硬件设备,通常是 output;
对处理器而言,数据进入寄存器为 input,而数据放在内存却变成了 output;
所以,不可一概而论呀
这里都是流的处理,当然还有其它的处理方式:比如Data等。
我有一份JDK的帮助,需要的话,加我QQ:57773930
想向外写流得时候用 output
output就是程序到外界就这么简单