Java I/O 学习小总结
来源:互联网 发布:阿里云ecs 挂载磁盘 编辑:程序博客网 时间:2024/04/26 19:08
光看书学技术其实不太可靠,要动手敲代码,并且网上资源很多,要吸取别人的经验,看视频也是很好的方式。
一开始学的时候没有专注于这一点,简单的看了马士兵的视频,用到的时候已经忘了。首先看的是《java语言程序设计 第八版》有点乱,不是很清楚,然后看的是达内的培训视频,似乎由于版权问题虽然讲的不错没看完。但也做了多少笔记。然后看了两个博客,才有了一个清晰的认识。
先贴上几个类图:
最主要的概念莫过于:流(Stream)。按不同的分类可以分为字节流和文本流。输入流和输出流。节点流和包装流。
java.io.File:表示(不是代表!)磁盘文件的路径。 File f = new File("C:\\abc.tex");系统不会去磁盘下搜索是否存在文件。在API下有很多方法,比如:delete().canReader().canWrite().exists().get...() mkdir() separator()是静态属性。
这是一个讲的不错的博客这个写的真不错!
这是第二个
----------------------------------------更新--------------------------------------
补充一下第一个博客上没有说的之一的ByteArrayInputStream和ByteArrayOutputStream
这两个类是用IO的形式来完成对字符数组内容的读写,来支持类似虚拟化内存文件和内存映射文件的功能。在创建实例的时候,程序内部创建一个byte[] 型的缓冲区,然后里利用实例读写数据。
ByteArrayOutputStream:
import java.io.*;public class test { public static void main(String[] args) { int a=0; int b=1; int c=2; ByteArrayOutputStream bout = new ByteArrayOutputStream(); bout.write(a); bout.write(b); bout.write(c); byte[] buff = bout.toByteArray(); for(int i=0; i<buff.length; i++) System.out.println(buff[i]); System.out.println("***********************"); ByteArrayInputStream bin = new ByteArrayInputStream(buff); while((b=bin.read())!=-1) { System.out.println(b); } }}
如上所示,ByteArrayOutputStream把内存中的数据读到字节数组中,而ByteArrayInputStream又把字节数组中的字节以流的形式读出,实现了对同一个字节数组的操作.
综合DataOutputStream&DataInputStream的作用和功能,与ByteArrayOutputStream和ByteArrayInputSream使用将更方便.此时DataOutputStream&DataInputStream封闭了字节流,以适当的形式读出了字节数组中的数据.如下所示:
import java.io.*;public class test { public static void main(String[] args)throws IOException { ByteArrayOutputStream bout = new ByteArrayOutputStream(); DataOutputStream dout = new DataOutputStream(bout); String name = "xxy"; int age = 84; dout.writeUTF(name); dout.writeInt(age); byte[] buff = bout.toByteArray(); ByteArrayInputStream bin = new ByteArrayInputStream(buff); DataInputStream dis = new DataInputStream(bin); String newName = dis.readUTF(); int newAge = dis.readInt(); System.out.println(newName+":"+newAge); }}
- Java I/O 学习小总结
- Java I/O学习总结
- Java I/O 学习总结
- java i/o学习总结
- Java I/O流小总结
- I/O系统之Java学习总结
- JAVA I/O流学习总结
- 【黑马程序员】java I/O 学习总结
- java I/O 流总结学习
- java i/o 学习总结(二)
- Java I/O 学习总结(一)
- Java I/O 学习总结(二)
- Java I/O总结
- Java I/O总结
- java I/O总结
- java I/O总结
- Java I/O 总结
- Java I/O总结
- 每一个正整数可以表示为3个三角形数之和
- Android同一图片在不同分辨率下长宽不同
- OPENCV直方图计算原理及反向投影检测原理
- SSDP协议的Python示例
- 对输入的有向图进行拓扑排序
- Java I/O 学习小总结
- 【剑指offer】两个队列实现一个栈
- Javascript 进阶 作用域 作用域链
- 设计一个长方形类
- ubuntu+systemtap进行Linux内核和用户空间开发测试
- Linux性能测试 mpstat命令
- Linux crontab 命令介绍
- 哈哈
- LINUX下向服务器传输文件 pscp