丰富的线上&线下活动,深入探索云世界
做任务,得社区积分和周边
最真实的开发者用云体验
让每位学生受益于普惠算力
让创作激发创新
资深技术专家手把手带教
遇见技术追梦人
技术交流,直击现场
海量开发者使用工具、手册,免费下载
极速、全面、稳定、安全的开源镜像
开发手册、白皮书、案例集等实战精华
为开发者定制的Chrome浏览器插件
可以读写基本数据类型的数据
数据输入流:DataInputStream
DataInputStream(InputStreamin)
数据输出流:DataOutputStream
DataOutputStream(OutputStreamout)
privatestaticvoidread()throwsIOException{//DataInputStream(InputStreamin)//创建数据输入流对象DataInputStreamdis=newDataInputStream(newFileInputStream("dos.txt"));//读数据byteb=dis.readByte();shorts=dis.readShort();inti=dis.readInt();longl=dis.readLong();floatf=dis.readFloat();doubled=dis.readDouble();charc=dis.readChar();booleanbb=dis.readBoolean();//释放资源dis.close();}privatestaticvoidwrite()throwsIOException{//DataOutputStream(OutputStreamout)//创建数据输出流对象DataOutputStreamdos=newDataOutputStream(newFileOutputStream("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();}内存操作流用于处理临时存储信息的,程序结束,数据就从内存中消失。
字节数组:ByteArrayInputStreamByteArrayOutputStream
字符数组:CharArrayReaderCharArrayWriter
字符串:StringReaderStringWriter
//ByteArrayOutputStream()ByteArrayOutputStreambaos=newByteArrayOutputStream();//写数据for(intx=0;x<10;x++){baos.write(("hello"+x).getBytes());}//释放资源//通过查看源码我们知道这里什么都没做,所以根本不需要close()//baos.close();//publicbyte[]toByteArray()byte[]bys=baos.toByteArray();//读数据//ByteArrayInputStream(byte[]buf)ByteArrayInputStreambais=newByteArrayInputStream(bys);intby=0;while((by=bais.read())!=-1){System.out.print((char)by);}//bais.close();打印流(1)字节打印流,字符打印流
(2)特点:
A:只操作目的地,不操作数据源
B:可以操作任意类型的数据
C:如果启用了自动刷新,在调用println()方法的时候,能够换行并刷新
D:可以直接操作文件
问题:哪些流可以直接操作文件呢
看API,如果其构造方法能够同时接收File和String类型的参数,一般都是可以直接操作文件的
(3)案例:复制文本文件
BufferedReaderbr=newBufferedReader(newFileReader("a.txt"));PrintWriterpw=newPrintWriter(newFileWriter("b.txt"),true);Stringline=null;while((line=br.readLine())!=null){pw.println(line);}pw.close();br.close();标准输入输出流(理解即可)
System类下面有这样的两个字段:in标准输入流/out标准输出流
(2)三种键盘录入方式
A:main方法的args接收参数
B:System.in通过BufferedReader进行包装
BufferedReaderbr=newBufferedReader(new
InputStreamReader(System.in));
C:Scanner
Scannersc=newScanner(System.in);
(3)输出语句的原理和如何使用字符流输出数据
A:原理System.out.println("helloworld");PrintStreamps=System.out;ps.println("helloworld");
B:把System.out用字符缓冲流包装一下使用
BufferedWriterbw=newBufferedWriter(newOutputStreamWriter(System.out));