数据流

可以读写基本数据类型的数据

数据输入流: DataInputStream

DataInputStream(InputStream in)

数据输出流: DataOutputStream

DataOutputStream(OutputStream out)

privatestaticvoid	read()	throws	IOException {// DataInputStream(InputStream in)//	创建数据输入流对象DataInputStream dis =	newDataInputStream( new FileInputStream("dos.txt"));//	读数据byte	b = dis.readByte(); short s = dis.readShort(); int i = dis.readInt();long	l = dis.readLong(); float	f = dis.readFloat();double	d = dis.readDouble();char	c = dis.readChar();boolean	bb = dis.readBoolean();//	释放资源dis.close();}privatestaticvoid	write()	throws IOException {// DataOutputStream(OutputStream out)//	创建数据输出流对象DataOutputStream dos = new DataOutputStream(new FileOutputStream( "dos.txt"	));//	写数据了dos.writeByte(10);dos.writeShort(100); dos.writeInt(1000); dos.writeLong(10000); dos.writeFloat(12.34F); dos.writeDouble(12.56); dos.writeChar('a'); dos.writeBoolean(true);//	释放资源dos.close();}

内存操作流

用于处理临时存储信息的,程序结束,数据就从内存中消失。

字节数组:ByteArrayInputStream    ByteArrayOutputStream

字符数组:CharArrayReader      CharArrayWriter

字符串:StringReader      StringWriter

// ByteArrayOutputStream()ByteArrayOutputStream baos = new ByteArrayOutputStream();//	写数据for	(  int	x = 0; x < 10; x++) {baos.write(("hello"	+x ).getBytes());}//	释放资源//	通过查看源码我们知道这里什么都没做,所以根本不需要	close()// baos.close();// public byte[] toByteArray()byte  []bys = baos.toByteArray();//	读数据// ByteArrayInputStream(byte[] buf)ByteArrayInputStream bais = new ByteArrayInputStream(bys);int	by = 0;while((by = bais.read()) != -1) {System.	out .print((char)	by );}// bais.close();

 打印流

(1)字节打印流,字符打印流

(2)特点:

A:只操作目的地 ,不操作数据源

B:可以操作任意类型的数据

C:如果启用了自动刷新,在调用  println()  方法的时候,能够换行并刷新

D:可以直接操作文件

问题:哪些流可以直接操作文件呢 ?

看 API,如果其构造方法能够同时接收 File 和 String 类型的参数,一般都是可以直接操作文件的

(3)案例:复制文本文件

BufferedReader br  = new BufferedReader(new FileReader("a.txt"));PrintWriter pw = new PrintWriter(new FileWriter("b.txt"),true);String line = null ;while ((line=br.readLine())!=null ) {pw.println(line );}pw.close();br.close();

标准输入输出流 ( 理解即可 )

System 类下面有这样的两个字段:in 标准输入流 / out 标准输出流

(2)三种键盘录入方式

A:main 方法的 args 接收参数

B:System.in 通过 BufferedReader 进行包装

    BufferedReader br = new BufferedReader(new

    InputStreamReader(System.in));

C:Scanner

Scanner sc = new Scanner(System.in);

(3)输出语句的原理和如何使用字符流输出数据

A:原理    System.out.println("helloworld"); PrintStream ps = System.out; ps.println("helloworld");

B:把 System.out 用字符缓冲流包装一下使用

BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

​​​​​​

收藏 打印