第六篇 IO流技术(六)

package com.zzp.demo01;

import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

/**
 *
 * 四个步骤:字节数组输入流
 * 1、创建源:字节数组不能过大
 * 2、选择流
 * 3、操作
 * 4、释放资源:可以不用处理
 * @author java
 *
 */
public class IOTest07 {
    public static void main(String[] args) {
        //1、创建源
        byte[] src = "talk is cheap show me the code".getBytes();//相对路径
        //2、选择流
        InputStream is = null;
        try {
            is = new ByteArrayInputStream(src);
            //3、操作  分段读取
            byte[] flush = new byte[5]; //每次读取五个字节
            int len = -1;//设置默认长度为-1
            while((len = is.read(flush))!= -1){
                String str = new String(flush, 0, len);//将字节转化为字符串
                System.out.println(str);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            if(null != is){
                //4、释放资源
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
package com.zzp.demo01;

import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.OutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStream;

/**
 *
 * 四个步骤:(字节数组输出流)
 * 1、创建源:内部维护
 * 2、选择流:不关联源
 * 3、操作
 * 4、释放资源:可以不用
 * 最后要拿一下数据使用toByteArray
 * @author java
 *
 */
public class IOTest08 {
    public static void main(String[] args) {
        //1、创建源
        byte[] dest = null;
        //2、选择流
        ByteArrayOutputStream os = null;
        try {
            os = new ByteArrayOutputStream();
            //3、操作(写入操作)
            String msg = "我爱我的国家";
            byte[] datas = msg.getBytes();//将字符串转化成字节数组
            os.write(datas, 0, datas.length);
            os.flush();//刷新
            byte[] byteArray = os.toByteArray();
            System.out.println(byteArray.length+"----"+new String(byteArray, 0, os.size()));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            if(null != os){
                try {
                    os.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
    }
}

原文地址:https://www.cnblogs.com/zhangzhipeng001/p/9557233.html

时间: 2024-08-08 03:46:07

第六篇 IO流技术(六)的相关文章

第四篇 IO流技术(四)

package com.zzp.demo01; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; /** * * 第一个程序 理解操作步骤 * 1.创建源 * 2.选择流 * 3.操作 * 4.释放资源 * @author java * */ public

第三篇 IO流技术(三)

编码和解码 package com.zzp.demo; import java.io.UnsupportedEncodingException; /** * * 字符串到字节 --> 编码 * @author java * */ public class ContentEncode { public static void main(String[] args) throws UnsupportedEncodingException { String msg = "我是中国人";

第十篇 IO流技术(十)

package com.zzp.commons; import java.io.File; import org.apache.commons.io.FileUtils; /** * * 大小 * @author java * */ public class CIOTest01 { public static void main(String[] args) { //文件的大小 long len = FileUtils.sizeOf(new File("src/com/zzp/commons/C

java基础篇IO流的规律

前两篇降了IO流中的字节流和字符流复制的例子,今天来总结一下IO流的规律 掌握好IO流的规律,再开发中会很好用 下面来总结一下: 1,明确源和目的 源:输入流 InputStream 和Reader 目的:输出流 OutputStream 和Writer 2,操作的数据是否是纯文本. 是:使用字符流 不是:使用字节流 3,当体系明确后,在明确要使用哪个具体的对象,通过设备来进行区分 源设备: 内存,硬盘,键盘 目的设备: 内存,硬盘,控制台 这里的源就是你想进行的操作,比如说你想从c盘复制一个文

java IO流技术 之 File

IO流技术 概念:input - output 输入输出流: 输入:将文件读到内存中: 输出:将文件从内存中写出到其他地方 作用:主要就是解决设备和设备之间的数据传输问题. File :文件类的使用十分重要 (一)file的构造方法 1 public static void test1(){ 2 3 //三种拼接路径方式 4 //1.直接拼接 5 File filePath = new File("C:\\123\\aaa"); 6 System.out.println("是

Java IO流技术

Java IO流技术 Java IO基本总结 Java的IO技术就是用来处理数据的.比如从文件中读取数据,或者将数据写到文件中.在网络中传输的都是二进制,即字节码,我们需要在传输之前,将我们程序中的数据转换成字节码才能进行传输.Java的IO包内就提供了完成这些工作的工具类. 总的来说:当需要以二进制的形式来处理文件时,即不涉及文本内容的操作时,我们可以选择InputStream和OutputStream来完成我们的工作.当需要完成处理字符串相关的工作时,就需要使用Reader和Writer来完

JAVA学习第五十二课 — IO流(六)File对象

File类 用来给文件或者文件夹封装成对象 方便对文件与文件夹的属性信息进行操作 File对象可以作为参数传递给流的构造函数 一.构造函数和分隔符 public static void FileDemo() {//构造函数演示 //可以将一个已存在或不存在的文件或目录封装成File对象 File file = new File("d:\\a.txt"); File file2 = new File("d:","a.txt"); File file

JAVA学习第五十六课 — IO流(十)对象的序列化和反序列化 & RandomAccessFile

操作对象 ObjectInputStream.ObjectOutputStream 被操作的对象需要实现Serializable(标记接口) ObjectOutputStream 将 Java 对象的基本数据类型和图形写入 OutputStream.可以使用 ObjectInputStream 读取(重构)对象.通过在流中使用文件可以实现对象的持久存储.如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象. 对象的默认序列化机制写入的内容是:对象的类,类签名,以及非瞬态和非静态字段的

J06-Java IO流总结六 《 BufferedReader和BufferedWriter 》

1. 概念简介 与字节缓冲流BufferedInputStream和BufferedOutputStream对应的,我们还有字符缓冲流BufferedReader和BufferedWriter,顾名思义,它们是带有字符缓冲区的字符输入输出流,原理跟字节缓冲流一样,这两个流也是使用装饰模式对底层字符输入流进行了包装,并通过字符缓冲区来提高I/O效率,这里不再详细说明.唯一需要注意的是,相对于它们的父类,则两个流分别都新增了一些自己的方法,如下所示: BufferedReader新增方法: Stri