Java_基础—内存输出流
来源:互联网 发布:《企业的大数据战略》 编辑:程序博客网 时间:2024/05/18 01:05
package com.soar.otherio;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;public class Demo2_ByteArrayOutputStream { /*****1.什么是内存输出流 * 该输出流可以向内存中写数据, 把内存当作一个缓冲区, 写出之后可以一次性获取出所有数据****2.使用方式 * 创建对象: new ByteArrayOutputStream() * 写出数据: write(int), write(byte[]) * 获取数据: toByteArray() * * ByteArrayOutputStream() * 内存输出流 * * FileInputStream读取中文的时候出现了乱码 * 解决方案: * ① 字符流读取 * ② ByteOutPutStream */ public static void main(String[] args) throws IOException { //demo1(); FileInputStream fis = new FileInputStream("e.txt"); ByteArrayOutputStream baos = new ByteArrayOutputStream(); //在内存中创建了可以增长的内存数组 int b; while((b = fis.read()) != -1){ baos.write(b); //将读取到的数据逐个写到内存中 } //byte[] arr = baos.toByteArray(); //将缓冲区的数据全部获取出来,并赋值给arr数组 //System.out.println(new String(arr)); System.out.println(baos.toString()); //将缓冲区的内容转换为了字符串,在输出语句中可以省略调用toStrin()方法 fis.close(); } private static void demo1() throws FileNotFoundException, IOException { FileInputStream fis = new FileInputStream("e.txt"); byte[] arr = new byte[3]; int len; while((len = fis.read(arr)) != -1){ System.out.println(new String(arr, 0, len)); } }}
面试题
package com.sora.test;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.IOException;public class Test8 { /* * 定义一个文件输入流,调用read(byte[] b)方法, * 将a.txt文件中的内容打印出来(byte数组大小限制为5) * * 分析: * ① read(byte[] b)是字节输入流的方法,创建FileInputStream,关联a.txt * ② 创建内存输出流,将读到的数据写到内存输出流中 * ③ 创建字节数组,长度为5 * ④ 将内存输出流的数据,全部转换为字符串打印 * ⑤ 关闭输入流 */ public static void main(String[] args) throws IOException { //① read(byte[] b)是字节输入流的方法,创建FileInputStream,关联a.txt FileInputStream fis = new FileInputStream("a.txt"); //② 创建内存输出流,将读到的数据写到内存输出流中 ByteArrayOutputStream baos = new ByteArrayOutputStream(); //③ 创建字节数组,长度为5 byte[] arr = new byte[5]; int len; while((len = fis.read(arr)) != -1){ baos.write(arr, 0, len); } //④ 将内存输出流的数据,全部转换为字符串打印 System.out.println(baos); //即使没有调用,底层也会默认帮我们调用toString()方法 //⑤ 关闭输入流 fis.close(); }}
阅读全文
0 0
- Java_基础—内存输出流
- Java_基础—标准输入输出流概述和输出语句
- Java_基础—字节流读写中文
- Java_基础—字符流FileReader
- Java_基础—字符流FileWriter
- Java_基础—字符流的拷贝
- Java_基础—FileInputStream
- Java_基础—FileOutputStream
- Java_基础—LineNumberReader
- Java_基础—递归
- Java_基础—输出指定目录下指定后缀的文件名
- Java_基础—异常练习
- Java_基础—图片加密
- Java_基础—拷贝文件
- Java_基础—试用版软件
- Java_基础—多线程(死锁)
- java_内存
- Java_内存
- library not found for -xxx
- 类的继承以及类中成员的访问特性
- php 复制a.txt复制到b.txt,a.txt从第2行到10行复制到c.txt
- 2个线程模拟卖火车票
- java栈与常量池中基本数据类型
- Java_基础—内存输出流
- “/RCMDemo”应用程序中的服务器错误。
- python 时间模块(time and datetime)
- 各种学习资源
- 线程的启动
- python调用API来实现机器人
- fullPage.js学习笔记1
- QT5 VS2010安装与配置
- 运维技巧