摘要:
如果想要接收任意长度的数据,而且避免乱码产生,就可以使用BufferedReader类public class BufferedReader extends Reader因为输入的数据有可能出现中文,所以,此处使用字符流完成。BufferedReader是从缓冲区之中读取内容,所有的输入的字节数据都将放在缓冲区之中。System.in本身表示的是InputStream(字节流),现在要求接收的是一个字符流,需要将字节流变成字符流才可以,所以要用InputStreamReader 1 import java.io.BufferedReader; 2 import java.io.IOExcept 阅读全文
摘要:
System类的常量System表示系统类,此类也对IO给予了一定的支持。public static final PrintStream out 对应系统标准输出,一般是显示器public static final PrintStream err 错误信息输出public static final InputStream in 对应着标准输入,一般是键盘又是由于历史遗留问题 全局变量没有大写~System.out使用System.out输出的时候就是将输出的位置定义在了显示器之中。FileOutputStream是定位在文件里,而System.out是定位在屏幕上。使用OutputStre.. 阅读全文
摘要:
在整个IO包中,打印流是输出信息最方便的类,主要包含字节打印流(PrintStream)和字符打印流(PrintWrite)。打印流提供了非常方便的打印功能,可以打印任何的数据类型,例如:小数、整数、字符串等等。看一下PrintStream的构造方法:public PrintStream(OutputStream out)在PrintStream中定义的构造方法中可以清楚的发现有一个构造方法可以直接接收OutputStream类的实例,这是因为与OutputStream相比起来,PrintStream可以更加方便的输出数据,这就好比将OutputStream类重新包装了一下,使之输出更加方便。 阅读全文
摘要:
装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案,提供比继承更多的灵活性。动态给一个对象增加功能,这些功能可以再动态的撤消。增加由一些基本功能的排列组合而产生的非常大量的功能。 1 interface Person{ 2 public void eat(); 3 } 4 5 class Man implements Person{ 6 public void eat() { 7 System.out.println("吃饭"); 8 } 9 }10 11 class Decorator implements Person{12 ... 阅读全文
摘要:
管道流(线程通信流)管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream)、管道输入流(PipedInputStream),如果想要进行管道输出,则必须要把输出流连在输入流之上,在PipedOutputStream类上有如下的一个方法用于连接管道:public void connect(PipedInputStream snk)throws IOException例子:线程之间用管道流进行通讯 1 import java.io.IOException; 2 import java.io.PipedInputStream; 3 import java.i 阅读全文
摘要:
ByteArrayInputStream和ByteArrayOutputStream之前所讲解的程序中,输出和输入都是从文件中来得,当然,也可以将输出的位置设置在内存之上,此时就要使用ByteArrayInputStream、ByteArrayOutputStream来完成输入输出功能了ByteArrayInputStream的主要功能将内容输入到内存之中ByteArrayOutputStream的主要功能是将内存中的数据输出此时应该把内存作为操作点ByteArrayInputStream类的定义:public classByteArrayInputStream extends InputSt 阅读全文
摘要:
OutputStreamWriter和InputStreamReader在整个IO包中,实际上就是分为字节流和字符流,但是除了这两个流之外,还存在了一组字节流-字符流的转换类。OutputStreamWriter:是Writer的子类,将输出的字符流变为字节流,即:将一个字符流的输出对象变成字节流的输出对象。InputStreamReader:是Reader的子类,将输入的字节流变为字符流,即:将一个字节流的输入对象变成字符流的输入对象。一般在操作输入输出内容就需要使用字节或字符流,但是有些时候需要将字符流变成字节流的形式,或者将字节流变为字符流的形式,所以,就需要另外一组转换流的操作类。看一 阅读全文
摘要:
先来看一下流的概念:在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。字节流与字符流在java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入和输出操作。在字节流中输出数据主要是使用OutputStream完成,输入使的是InputStream,在字符流中输出主要是使用Writer类完成,输入流主要使用Reader类完成。(这四个都是抽象类)操作流程在Java中IO操作也是有相应步骤的,以文件操作为例,主要的 阅读全文