流
java的I/O建立在流(stream)之上,输入流读入数据,输出流写入数据。不同的流类会读/写某个特定的数据源,如
- java.io.FileInputStream
- sun.net.TelnetOutputStream
输出流
java的最基本的输出流是java.io.OutputStream:
public abstract class OutputStream
这个类提供了写入数据所需要的基本方法。这些方法包括
public abstract void write(int b) throws IOException
public void write(byte[] data) throws IOException
public void write(byte[] data,int offset,int length) throws IOException
public void flush() throws IOException
public void close() throws IOException
OutputStream的基本方法是write(int b).这个方法接受一个0-255之间的整数作为参数,将相应的字节写入到输出流中
例如:字符生成器协议定义了一个发送ASCII码的文本服务器,这个协议最流行的变体是发送72个字符的文本行,其中包含可显示的ASCII码(可显示的ASCII码字符是33到126之间的字符,不包含各种空白符和控制字符)
预备知识:java中的方法调用
方法一、被调用方法声明为static ,可以在其他方法中直接调用(内部类)
方法二、被调用方法,没被static修饰,不是静态方法。调用时需要通过类的实例化进行调用(内部类)
方法三、调用外部的类的方法,通过类的实例化进行调用
下面是示例代码:
public static void generateCharacters(OutputStream out) throws IOException
{
int firstPrintableCharacter=33;
int numberOfPrintableCharacter=94;
int numberOfCharactersPerline=72;
int start=firstPrintableCharacter;
while (true) {
for(int i=start;i<start+numberOfCharactersPerline;i++)
{
out.write((i-firstPrintableCharacter)%numberOfCharactersPerline+firstPrintableCharacter);
}
out.write('\r');
out.write('\n');
start=(((start+1)-firstPrintableCharacter)%numberOfCharactersPerline+firstPrintableCharacter);
}
}
一次写入一个字节的效率不高,所以如果有多字节要发送,则一次全部发送是一个好主意,主要是使用write(byte[] data)
扫描二维码关注公众号,回复:
1156868 查看本文章
暂停更新,发现现阶段学习有点不对应