数据流
可以读写基本数据类型的数据
数据输入流: 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));
继续阅读与本文标签相同的文章
-
芝麻信用授权接入
2026-05-26栏目: 教程
-
2018及以后的热门网络技巧
2026-05-26栏目: 教程
-
如何优雅地过滤敏感词
2026-05-26栏目: 教程
-
聊聊Java动态代理(上)
2026-05-26栏目: 教程
-
聊聊设计模式之策略模式
2026-05-26栏目: 教程
