java I/O流详解
来源:互联网 发布:linux 关闭ntpdate 编辑:程序博客网 时间:2024/05/29 03:55
概念
java中一切都是面向对象的,在I/O流操作中,可分为数据对象和操作数据对象,对流操作的单元可分为字节流和字符流。
字节流:
1)操作对象是字节,字节是数据在计算机中存储的单元,是一个二进制数
2)是直接操纵文件
字符流:
1)操作对象是文本,字符是抽象符号定义
2)会将数据放入缓冲区,在操作流对象关闭的时候,从缓冲区中写出数据
输入流:
对数据操作,以流的形式存在,从流中读取数据
输出流:
对数据处理,写入到流中,写出到文件中
字节流
SequenceInputStream
SequenceInputStream sequenceInputStream = null; Vector<FileInputStream> vector = new Vector<FileInputStream>(); vector.addElement(new FileInputStream(new File("D://text1.txt"))); vector.addElement(new FileInputStream(new File("D://text2.txt"))); vector.addElement(new FileInputStream(new File("D://text3.txt"))); vector.addElement(new FileInputStream(new File("D://text4.txt"))); Enumeration<FileInputStream> e = vector.elements(); sequenceInputStream = new SequenceInputStream(e); FileOutputStream outputStream1 = new FileOutputStream(new File("D://file2.txt")); //输出流 操作单元以数组形式 //每次读一个字节,缓存到字节数组中,然后返回 byte[] buffer1 = new byte[1024]; int temp = 0 ; while((temp = sequenceInputStream.read(buffer1)) != -1){ System.out.println((char)temp); //将字节数组buffer1偏移量0长度为temp的数据写出 outputStream1.write(buffer1, 0, temp); //强制将缓冲区的数据输出到输出流 outputStream1.flush(); } sequenceInputStream.close(); outputStream1.close();
ByteArrayInputStream
String str = "welcome to shanghai"; //输出到控制台 PrintStream printStream = new PrintStream(System.out); ByteArrayInputStream byteInputStream = new ByteArrayInputStream(str.getBytes()); int index = 0; //从字节流中一个个字节读取并返回 while((index = byteInputStream.read()) != -1){ printStream.write(index); } printStream.close(); byteInputStream.close();
Object(Input/Output)Stream ##
//输出流 将数据写出到流中 TestBean bean = new TestBean(); bean.setName("shanghai"); OutputStream outputStream = new FileOutputStream("object.data"); ObjectOutputStream objectOutputStream = new ObjectOutputStream(outputStream); objectOutputStream.writeObject(bean); //输入流 从流中将数据读取 InputStream inputStream = new FileInputStream("object.data"); ObjectInputStream objectInputStream = new ObjectInputStream(inputStream); TestBean testBean = (TestBean) objectInputStream.readObject(); //输出到控制平台 PrintStream print = new PrintStream(System.out); print.print(testBean.getName()); outputStream.close(); objectOutputStream.close(); inputStream.close(); objectInputStream.close(); print.close();
Data(Input/Output)Stream
OutputStream outputStream = new FileOutputStream("object.data"); DataOutputStream dataOutputStream = new DataOutputStream(outputStream); TestBean bean = new TestBean(); bean.setName("shanghai"); dataOutputStream.writeUTF(bean.getName());; InputStream inputStream = new FileInputStream("object.data"); DataInputStream dataInputStream = new DataInputStream(inputStream); String str = dataInputStream.readUTF(); PrintStream print = new PrintStream(System.out); print.print(str); outputStream.close(); dataOutputStream.close(); inputStream.close(); dataInputStream.close(); print.close();
字符流
FileReader reader = new FileReader(new File("D://text1.txt")); PrintWriter writer = new PrintWriter(System.out); int index = 0; char[] chars = new char[512]; while((index = reader.read(chars)) != -1){ writer.write(chars, 0, index); } reader.close(); writer.close();
0 0
- 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详解
- java I/O详解
- Java I/O 详解
- java I/O 输入输出流详解
- JAVA I/O输入输出流详解
- Java:I/O流基础知识详解
- java的I/O详解
- 2014 鞍山区域赛 J HDU5079 Square DP套DP
- Android中的基础----如何获得LinearLayout布局的高和宽
- swipe的基础使用(二十三)
- PBOC交易流程图
- Codeforces Round #320 (Div. 2) [Bayan Thanks-Round] D 前缀后缀维护
- java I/O流详解
- 记录下最近遇到的坑
- RabbitMQ消息队列(二):”Hello, World“
- Google App Engine的app.yaml详细说明
- 刚刚提取了金山毒霸的[垃圾清理] 和 [隐私清理], 分享方法,大家可以自己试一下
- emmc跟踪代码中的:might_sleep
- Java中的锁
- 7.12 noip2103提高组复赛day2
- Reverse Bits