JAVAIO (文件流与字符数组流)

package com.lz.byteArrayStream;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

/**
 * FileStream
 * ByteArrayStream
 *
 * @author LZ
 *
 */
public class Test {
    public static void main(String[] args) {
        try {
            read(write());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void copy(File in, File out) throws FileNotFoundException,
            IOException {
        FileInputStream fis = new FileInputStream(in);
        FileOutputStream fos = new FileOutputStream(out);

        BufferedInputStream bis = new BufferedInputStream(fis);
        BufferedOutputStream bos = new BufferedOutputStream(fos);

        byte[] flush = new byte[10];
        int len = 0;
        while ((len = bis.read(flush)) != -1) {
            bos.write(flush, 0, len);
        }
        bos.flush();
        bos.close();
        bis.close();
        fos.close();
        fis.close();
    }

    public static void read(byte[] src) throws IOException {
        //资源 由方法传入

        //选择流
        InputStream is = new BufferedInputStream(new ByteArrayInputStream(src));
        byte[] flush = new byte[1024];
        int len = 0;
        while ((len = is.read(flush)) != -1) {
            System.out.println(new String(flush, 0, len));
        }
        is.close();
    }

    public static byte[] write() throws IOException {
        //目的地
        byte[] dest;
        //选择流
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        String msg = "byteOutStream";
        byte[] info = msg.getBytes();
        bos.write(info, 0, info.length);
        //获取数据
        dest = bos.toByteArray();
        //关闭资源
        bos.close();
        return dest;
    }
}
时间: 2024-08-15 12:54:00

JAVAIO (文件流与字符数组流)的相关文章

java基础(IO流---字节流、字符流、字节数组流)

字节流: FileInputStream:通过字节的方式读取文件,适合读取所有类型的文件(图像.视频等),全字符请考虑FileReader FileOutputStream:通过字节的方式写出或追加数据到文件,适合所有类型的文件(图像.视频等),全字符请考虑FileWriter 字符流: FileReader :通过字符的方式读取文件,仅适合字符文件 FileWriter :通过字节的方式写出或追加数据到文件中,仅适合字符文件 字节数组流: ByteArrayInputStream:字节数组输入

Java文件与io——字节数组流数据流字符串流

字节数组流 ByteArrayInputStream:包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪read方法要提供的下一个字节.关闭ByteArrayInputStream无效.此类中的方法在关闭此流后仍可被调用,而不会产生任何IOException. ByteArrayOutputStream:此类中实现了一个输出流.其中的数据被写入一个byte数组.缓冲区会随着数据的不断写入而自动增长.可使用toByteArray()和toString()获取数据.关闭ByteArra

10_IO_第10天(字符流、字符缓冲流)

---恢复内容开始--- 今日学习目标 能够说出IO流的分类和功能 能够使用FileWirter写数据到文件 能够明确FileWriter写数据使用两种路径的区别 能够说出FileWriter中关闭和刷新方法的区别 能够使用FileWriter写数据的5个方法 能够使用FileWriter写数据实现换行和追加写 能够使用FileReader读数据 能够使用FileReader读数据一次一个字符数组 能够明确字符缓冲流的作用和基本用法 能够使用缓冲流的特殊功能 FileWriter和FileRea

缓冲流之字符缓冲流

字符缓冲流 字符缓冲输入流 BufferedReader 字符缓冲输出流 BufferedWriter 完成文本数据的高效的写入与读取的操作 1  字符缓冲输出流 BufferedWriter void newLine() 根据当前的系统,写入一个换行符 public static void method01() throws IOException{ //明确目的地 FileWriter fw =new FileWriter("E:\\java\\demo01.txt"); //添加

Java IO流之字符缓冲流

字符流: 1.加入字符缓存流,增强读取功能(readLine) 2.更高效的读取数据 BufferedReader 从字符输入流读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取. FileReader:内部使用InputStreamReader,解码过程,byte->char,默认缓存大小为8k BufferReader:默认缓存大小为8k,但可以手动指定缓存大小,把数据读取到缓存中,减少每次转换过程,效率更高 //字符输入缓冲流 private static void charRead

java中关于编码的问题(字符转换流及字符缓冲流 )

上次我们使用的是字节流,还有一种方式就是字符流,上次说过如何分辨使用哪种流,如果记事本可以读懂则使用字符流,否则使用字节流.使用字符流就需要牵扯到编码的问题,下面给出一种转化流的格式. OutputStreamWriter OutputStreamWriter(OutputStream os):默认编码,GBK OutputStreamWriter(OutputStream os,String charsetName):指定编码.InputStreamReader InputStreamRead

java字节缓冲流和字符缓冲流

一.字节缓冲流 1.介绍 字节缓冲流根据流的方向,分为: 1.写入数据到流中,字节缓冲输出流 BufferedOutputStream 2.读取流中的数据,字节缓冲输入流 BufferedInputStream 它们的内部都包含了一个缓冲区,通过缓冲区读写,就可以提高了IO流的读写速度 2.字节缓冲输出流BufferedOutputStream 构造方法: public BufferedOutputStream(OutputStream out):创建一个新的缓冲输出流,以将数据写入指定的底层输

java _io_图片到内存(字节数组),字节数组到文件,练习文件流和字节数组流

//图片读取到字节数组中,字节数组写出到文件 public class test{ public static void main(String[]args) { String path="C:/Users/10853/eclipse-workspace/hell/linux学习路线.png"; byte[] data=toByteArray(path); //图片不能直接到字节数组中,is.read()返回的是int类型的大小,new String是解码 //需要写入字节数组(内存)

内存流(字节数组流)ByteArrayInputStream

package org.example.io; import java.io.ByteArrayInputStream;import java.io.IOException; /** * ByteArrayInputStream:在创建对象时传入数组即可,不需要传文件,也没有新增的方法,close()关闭无效 * 流本身就是内存中的资源,流中的内容也是内存中的资源,所以不用手动关闭,内存会给他释放,所以不用关闭流 * 流的内容是内存中的资源,不访问磁盘 */ public class TestB