您现在的位置是:首页 > 文章详情

Java 学习(25)---(IO流之数据流 / 内存操作流 / 打印流 / 标准输入输出流)

日期:2018-08-02点击:353

数据流

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

数据输入流: 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));

​​​​​​

原文链接:https://yq.aliyun.com/articles/623920
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章