java基础知识回顾之javaIO类--内存操作流ByteArrayInputStream和ByteArrayOutputSteam(操作字节数组)

直接看代码:

package cn.itcast.io.p6.bytestream;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;

public class ByteArrayStreamDemo {

    /**
     * @param args
     * @throws IOException
     * 特点
     * 1.内存操作流
     * 2.不操作底层资源,不调用操作系统的底层资源,操作内存中的数据,内存流不需要关闭
     * 3.关闭流后还可以使用
     * 本例:内存操作流完成的一个大小写字母转换的程序:
     */
    public static void main(String[] args) {
        String str = "HELLO WORLD!";
        ByteArrayInputStream bis = new ByteArrayInputStream(str.getBytes());//将内容输入到内存中
        ByteArrayOutputStream bos = new ByteArrayOutputStream();//将内存中的数据输出
        int ch = 0;
        bis.skip(2);//跳过两个字节
        System.out.println(bis.available());//返回此输入流读取的(或跳过)剩余的字节数
        while((ch=bis.read())!=-1){
            bos.write(Character.toLowerCase(ch));//将大小字符转化成小写
        }
        System.out.println(bos.toString());
    }

}

输出:由于跳过两个字节,HELLO WORLD!总共12个字节,则剩余10个字节。

10
llo world!

java基础知识回顾之javaIO类--内存操作流ByteArrayInputStream和ByteArrayOutputSteam(操作字节数组)

时间: 2024-10-01 05:02:10

java基础知识回顾之javaIO类--内存操作流ByteArrayInputStream和ByteArrayOutputSteam(操作字节数组)的相关文章

java基础知识回顾之javaIO类--管道流PipedOutputStream和PipedIutputStream

管道流(线程通信流):管道流的主要作用是可以进行两个线程间的通讯,分为管道输出流(PipedOutputStream).管道输入流(PipedInputStream),如果想要进行管道输出,则必须要把输出流连在输入流之上.如图所示: 1.管道输入流应该连接到管道输出流 ,输入流和输出流可以直接连接       2.使用多线程操作,结合线程进行操作.通常由某个线程从管道输入流中(PipedInputStream)对象读取.          并由其他线程将其写入到相应的端到输出流中.不能使用单线程

java基础知识回顾之javaIO类--RandomAccessFile类

java.io 类 RandomAccessFile java.lang.Object java.io.RandomAccessFile1.该类不是IO流中的子类.2.该类既能读又能写.3.该对象内部分装了一个字节数组,通过指针可以操作数组中的元素.4.其实该对象就是将字节输入流和输出流进行了封装.5.该对象只能对文件操作,目的和源只能是文件对象.通过看构造方法可以看得出来.RandomAccessFile(File file, String mode) RandomAccessFile(Str

java基础知识回顾之javaIO类--File类应用:获取指定目录下面的指定扩展名的文件,将文件的绝对路径写入到目的文件当中

/** * File文件综合应用 * 需求:获取指定目录下面,指定扩展名的文件,将文件的绝对路径写到文本文件当中. *  * 思路:1.需要深度遍历.--递归 * 2.遍历的过程中过滤指定扩展名的文件--过滤器FileNameFilter,将文件存入容器中 * 3.将容器中的内容遍历,写入到指定文件中 * */ 代码:  FilenameFilter 过滤器: package com.lp.ecjtu.File.filter; import java.io.File; import java.i

java基础知识回顾之javaIO类--File类应用:删除带内容的目录

/** * 深度删除一个带内容的目录 * 原理:必须从里往外删除,需要深度遍历 * @author Administrator * */ public class FileDeleteList { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub File dir = new File("E:\\复件 demodir"); removedir(

java基础知识回顾之javaIO类--File类应用:递归深度遍历文件

代码如下: package com.lp.ecjtu.File.FileDeepList; import java.io.File; public class FileDeepList { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub File dir = new File("E:"+File.separator+"demodir

java基础知识回顾之javaIO类--File类应用:过滤器接口FilenameFilter和FileFilter

FilenameFilter和FileFilter都是用来过滤文件,例如过滤,以.jpg或者.java结尾的文件,通过看他们的源码:通过使用File类中String[] list(FilenameFilter filter)或者public File[] listFiles(FileFilter filter)方法,把FilenameFilter或者FileFilter接口对象作为参数传入,通过实现接口里面的 boolean accept(File dir, String name) 或者boo

java基础知识回顾之javaIO类--File类

File类是对文件系统中文件以及目录(文件夹)进行封装的对象,可以通过面向对象的思想来操作文件和目录(文件夹).File类保存文件或目录的各种元素的信息,包括文件名,文件长度,最后修改日期,是否可读,获取当前文件的路径名,判断指定文件是否存在,获得当前文件的列表,创建.删除文件目录等方法. /**     * 构造方法:File f = new File("file.txt");//file.txt 相对路径     *       File f1 = new File("c

java基础知识回顾之javaIO类总结

java IO体系图 IO流的操作规律总结: 1,明确体系: 数据源:InputStream ,Reader 数据汇:OutputStream,Writer 2,明确数据:因为数据分两种:字节,字符. 数据源:是否是纯文本数据呢? 是:Reader 字符输入流 否:InputStream  字节输入流 数据汇:是否是纯文本数据呢? 是:Writer  字符输出流 否:OutputStream  字节输出流. 到这里就可以明确具体要使用哪一个体系了,剩下的就是要明确使用这个体系中的哪个对象. 3.

java基础知识回顾之javaIO类---FileWriter和FileReader

FileWriter类的构造方法定义如下: 1.public FileWriter(File file)throws IOException 字符流的操作比字节流操作好在一点,就是可以直接输出字符串了,不用再像之前那样进行转换操作了. package com.lp.ecjtu; import java.io.FileWriter; import java.io.IOException; public class FileWriterDemo { /** * 字符流,创建一个FileWriter对