javaIO流中的字节字符流整理

【72】【OpenCV C++ & C#】 将cv::Mat 图像转换成imgINFO 传给c#在winform上显示,OpenCV C++如何将处理后的图像传给C#呢? 如何获取图像信息呢? 本文介绍了通过OpenCV C++处理图像后传递给C#的方法。首先定义了一个结构体imgINFO存储图像信息(数据指针、宽高、通道数等),然后通过getImgInfo函数将cv::Mat转换为该结构体。文章特别指出当图像宽度不能被4整除时可能出现失真问题,并给出了两种解决方案:调整输入图像或创建新的对齐图像。此外还解释了img.step和img.cols*img.elemSize()的关系,说明它们在大多数情况下是相等的。最后提到需要通过DLL将结构体传递给C#(具体方法参见其他文章)。 阅读详情

总结:
File 类 仅能获取文件的属性数据或者是修改文件的属性数据而已,不能读取文件内容数据。
如果需要操作文件内容数据,那么就需要学习”IO流”技术

IO流类别:
1. 流向划分
输入流
输出流
什么时候使用输入流什么时候使用输出流?
以当前程序作为参照物,数据流入 则使用输入流, 数据流出则使用输出流。

  1. 处理单位:
    字节流:字节流就是用于读取文件的字节数据的,读取到的数据不会经过任何的处理。
    字符流: 读取到的字节数据还会帮你转换成你看得懂的字符数据,读取的是以字符作单位 的数据。 字符流 = 字节流+ 解码

1字节流

1.1 InputStream

输入字节流:
———|InputStream 抽象类 输入字节流的基类。
————| FileInputStream 读取文件数据 的输入字节流

使用FileInputStream 读取文件数据步骤:

  1. 找到目标文件

  2. 建立数据的输入通道

  3. 读取文件数据

1.1.1 常用的读取文件数据方式:使用循环配合缓冲 数组读取 能读取完一个文件数据,速度快

public static void read() throws IOException{
        //找到目标文件
        File file = new File("F:\\a.txt");
        //建立数据的通道
        FileInputStream fileInputStream= new FileInputStream(file);
        //读取数据
        byte[] buf = new byte[1024];   //缓冲字节数组的长度一般都是1024的倍数。      缓冲字节数组一般越大效率越高
        int length = 0 ; //记录本次读取的自己个数。 
        while((length = fileInputStream.read(buf))!=-1){
            System.out.print(new String(buf,0,length));
        }
        //关闭资源(释放资源文件)
        fileInputStream.close();    
    }

1.2 OutputStream

输出字节流:

——–| OutputStream 抽象类,所有输出字节字节流的父类。
————| FileOutputStream 向文件输出数据的输出字节流。

使用FileOutputStream步骤:
1. 找到目标文件
2. 建立数据的输出通道
3. 准备数据,把数据写出
4. 把字符串转成字节数组
5. 字节数组写出
6. 关闭资源
FileOutputStream要注意的细节:
1. new FileOutputStream 的时候,如果目标文件不存在,那么会先创建目标 文件,然后再写入。
2. new FileOutputStream(file) 如果目标文件已经存在,那么会先清空 目标文件的数据,然后再写入新的数据.
3. 写入数据的时候如果需要以追加的形式写入,那么需要使用new FileOutputStream(file,true) 这个构造函数。
4. 使用write(int b)方法的时候,虽然参数接受的一个int类型的数据,但是实际上只会把数据的低八位写出,其他24位丢弃。

00000000-00000000-00000001-10000000
write(byte[] b, int off, int len) 

1.2.1常用写出的三种方式

    //方式一: 先把数据转成字节数组然后再写出。
    public static void write1() throws IOException{
        //找到目标文件
        File file = new File("F:\\a.txt");
        //建立数据的输出通道
        FileOutputStream fileOutputStream = new FileOutputStream(file,true); //第二个参数为true时,写入文件数据就是以追加的形式写入的
        //准备数据, 把数据写出
        String str  = "\r\nhello world";
        //把字符串转成字节数组
        byte[] buf = str.getBytes();
        //把字节数组写出
        fileOutputStream.write(buf);
        //关闭资源
        fileOutputStream.close();
    }


  //方式二
public static void write2() throws IOException {
        // 找到目标文件
        File file = new File("F:\\a.txt");
        // 建立数据的输出通道
        FileOutputStream fileOutputStream = new FileOutputStream(file);
        String data = "abcd";
        byte[] buf = data.getBytes(); // 97 98 99 100
        fileOutputStream.write(buf, 0, 2); // 指定开始的索引值与字节个数写出。
        fileOutputStream.close();
    }

//方式三: 每次只能写 一个字节的数据 。 
    public static void write3() throws IOException{
        //找到目标文件
        File file = new File("f:\\a.txt");
        //建立数据的输出通道
        FileOutputStream fileOutputStream = new FileOutputStream(file);
        //把数据写出
        fileOutputStream.write('h');
        fileOutputStream.write('e');
        fileOutputStream.write('l');
        fileOutputStream.write('l');
        fileOutputStream.write('o');
        //关闭资源
        fileOutputStream.close();
    }

/*
4. 使用write(int b)方法的时候,虽然参数接受的一个int类型的数据,但是实际上只会把数据的低八位写出,其他24位丢弃。
00000000-00000000-00000001-10000000
*/

public static void writeTest() throws FileNotFoundException, IOException {
        File file = new File("F:\\b.txt");
        //建立数据输出通道
        FileOutputStream fileOutputStream = new FileOutputStream(file);
        //把数据写出
        fileOutputStream.write(384);
        //关闭资源
        fileOutputStream.close();
    }

1.3 字节流文件拷贝

File inFile = new File("F:\\美女\\1.mp3");
        File outFile = new File("E:\\拷贝.mp3");
        //建立数据通道
        FileInputStream fileInputStream = new FileInputStream(inFile);
        FileOutputStream fileOutputStream = new FileOutputStream(outFile);
        //建立缓冲字节数组,边读边写
        byte[] buf = new byte[1024];
        int length = 0 ; //用于记录每次读取的字节个数
        while((length=fileInputStream.read(buf))!=-1){   // 700   300
            fileOutputStream.write(buf,0,length);
        }
        //关闭资源(关闭资源的原则:先开后关,后开先关)
        fileOutputStream.close();
        fileInputStream.close();

1.4 字节流的异常处理

    //拷贝图片
    public static void copyImage(){
        FileInputStream fileInputStream = null;
        FileOutputStream fileOutputStream = null;
        try{
            //找到目标文件
            File inFile = new File("F:\\美女\\1.jpg");
            File outFile = new File("F:\\拷贝.jpg");
            //建立数据的输入输出通道
            fileInputStream = new FileInputStream(inFile);
            fileOutputStream = new FileOutputStream(outFile);
            //建立缓冲字节数组,边读边写
            byte[] buf = new byte[1024];
            int length = 0 ; 
            while((length = fileInputStream.read(buf))!=-1){
                fileOutputStream.write(buf,0,length);
            }
        }catch(IOException e){
            System.out.println("拷贝出错了...");
            throw new RuntimeException(e);
        //关闭资源的原则: 先开后关, 后开先关。
        }finally{
            try{
                if(fileOutputStream!=null){
                    //关闭资源
                    fileOutputStream.close();
                }
            }catch(IOException e){
                throw new RuntimeException(e);
            }finally{
                try{
                    if(fileInputStream!=null){
                        fileInputStream.close();
                    }
                }catch(IOException e){
                    throw new RuntimeException(e);
                }
            }
        }           
    }

1.5 字节缓冲流

使用FileInputStream读取文件数据的时候如何读取效率是最高?
使用字节数组作为缓冲区读取的效率是最高的。

1.5.1 输入字节缓冲流

我们知道使用缓冲字节数组读取文件的效率最高,sun也知道使用缓冲字节数组读取的效率高,这时候sun为了方便我们工作,编写一个缓冲输入字节流给我去使用。

缓冲输入字节流的作用: 提高我们读取文件数据的效率。

输入字节流的体系:
———-| InputStream 抽象类 所有输入字节流的基类
————–| FileInputStream 读取文件数据的输入字节流
————–|BufferedInputStream 缓冲输入字节流 该类的本质其实只是在内部维护了一个8kb的字节数组而已。 主要是为了提高我们的读取文件 的效率。

凡是缓冲流都没有读写文件的能力。

BuffereInputStream注意的事项:
1. BuffereInputStream 的close方法实际上关闭的就是你传递进去的FileInputStream对象。

    public static void readTest() throws  IOException {
        //第一步:找到目标文件
        File file = new File("F:\\a.txt");
        //第二步:建立文件与程序的输入通道
        FileInputStream fileInputStream = new FileInputStream(file);
        //第三部:建立缓冲输入字节流
        /*
            疑问: 为什么创建BufferedInputStream对象需要传入一个InputStream的对象呢?
                BufferedInputStream没有读取文件 数据的能力,但是又要读取文件的数据,这时候只能依赖一个具备
                读取文件数据能力的对象。            
         */
        BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
        //读取文件数据
        int content = 0; 
        /*
            疑问: BufferedInputStream 的read方法每次只是读取一个字节的数据,FileInputStream的read方法每次也是读取一个字节的数据
            那么为什么说BufferedInputStream提高了读取的效率呢?
InputStream流是指将字节序列从外设或外存传递到应用程序的流
BufferedInputStream流是指读取数据时,数据首先保存进入缓冲区,其后的操作直接在缓冲区中完成。
         */
        while((content = bufferedInputStream.read())!=-1){
            System.out.print((char)content);
        }   
        //关闭资源       实际上关的是inputStream 的close方法
        bufferedInputStream.close();
    }   这里写代码片

1.5.2 输出字节缓冲流

缓冲输出字节流: 为了提高写文件的效率。

———| OutputStream 抽象类, 所有输出字节流的基类。
————-| FileOutputStream 向文件写出数据的输出字节流对象。
————-| BufferedOutputStream 缓冲输出字节流, 为了提高写文件数据的效率。

BufferedOutputStream 需要注意的事项: BufferedInputStream

1. 使用BufferedOutputStream的write方法时候,数据其实是写入了BufferedOutputStream内部维护的字节数组中,只有你调用BufferedOutputStream的close方法或者是flush方法数据才会真正的写到硬盘上去或者内部维护的字节数组已经存储满数据了,这时候 数据才会写到硬盘上去。

2/. BufferedOutputStream 的close方法实际上关闭的就是你传入的OutputStream对象的close方法。
 //找到目标文件对象
        File file = new File("f:\\a.txt");
        //建立数据的输出通道
        FileOutputStream fileOutputStream = new FileOutputStream(file);
        //建立缓冲输出字节流
        BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
        //写数据
        String data = "hello world";
        bufferedOutputStream.write(data.getBytes());        
//      bufferedOutputStream.flush(); //把缓冲字节数组的数据写到硬盘上去。
        bufferedOutputStream.close();   

1.5.3 使用缓冲输入输出字节流拷贝数据

public class CopyImage {
    public static void main(String[] args) throws IOException {
        long startTime = System.currentTimeMillis();
        //找到目标文件
        File inFile = new File("F:\\美女\\1.jpg");
        File outFile = new File("E:\\拷贝.jpg");
        //建立数据的输入输出通道
        FileInputStream fileInputStream = new FileInputStream(inFile);
        FileOutputStream fileOutputStream = new FileOutputStream(outFile);
        //建立缓冲输入输出字节流
        BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);
        BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
        //边读边写
        int content = 0 ; 
        while((content = bufferedInputStream.read())!=-1){
            bufferedOutputStream.write(content);
//          bufferedOutputStream.flush();
        }
        //关闭资源
        bufferedOutputStream.close();
        bufferedInputStream.close();                
        long endTime = System.currentTimeMillis();
        System.out.println(endTime-startTime);      
    }

2 字符流

2.1 Reader

输入字符流:

———-| Reader 抽象类 所有输入字符流的基类。
—————-| FileReader 读取文件数据的输入字符流。

FileReader的 使用步骤:
1. 找到目标文件。

读文件的两种方式

    //方式二:使用缓冲字符数组读取文件的数据     推荐
    public static void readTest2() throws IOException{
        //找到目标文件
        File file = new File("F:\\Demo1.java");
        //建立数据的输入通道
        FileReader fileReader = new FileReader(file);
        //建立缓冲字符数组,读取文件的数据
        char[] buf = new char[1024];
        int length = 0; 
        while((length = fileReader.read(buf))!=-1){  // read(char[] buf) 读取到的字符数组存储到了字符数组中,返回了本次读取到的字符个数。 
            System.out.print(new String(buf,0,length));
        }
        //关闭资源
        fileReader.close();
    }

    //方式一:每次只会读取一个字符的数据
    public static void readTest() throws IOException{
        //找到目标对象
        File  file = new File("f:\\a.txt");
        //建立数据的输入通道
        FileReader fileReader = new FileReader(file);
        //读取文件数据
        int content= 0;
        while((content=fileReader.read())!=-1){   // FileReader的read()方法每次读取一个字符的数据,如果读到 了文件末尾返回-1表示。 
            System.out.print((char)content);
        }
        //关闭资源
        fileReader.close();
    }

2.2 writer

输出字符流 :

——–| Writer 抽象类 输出字符流的基类。
————| FileWriter 向文件写出数据输出字符流.

FileWriter 使用步骤: FileReader
1. 找到目标文件
2. 建立数据的输出通道
3. 写出数据
4. 关闭资源

FileWriter 要注意的事项:
1. new FileWriter(file)的时候 , 如果目标文件不存在,那么会创建目标文件对象, 如果目标文件已经存在了,那么则不再重新创建。
2. 使用new FileWriter(file) 这个构造方法的时候,默认是会先清空文本的数据,然后再写入新的数据。如果需要追加数据则需要使用 new FileWriter(file,true)这个构造方法。
3. 使用FileWriter的write方法的时候,数据是写入了FileWriter内部维护的字符数组中,如果需要把数据真正的写到硬盘上去,需要调用flush方法或者 是close方法或者是内部维护的字符数组已经满了,这时候也会写到硬盘上。

    public static void writerTest() throws IOException{
        //找到目标文件
        File  file = new File("F:\\a.txt");
        //建立数据 的输出通道
        FileWriter fileWriter = new FileWriter(file); //第二个参数为true的意义是指追加数据。
        //准备数据,把数据写出
        String data = "现在雨停了";
        fileWriter.write(data);     
        //刷新输出字符流
        fileWriter.flush();     
    }

2.3 输入输出字符流的拷贝数据

总结 :
需求:使用输入输出字符流拷贝java文件.
何时使用字符流:何时使用字节流:

  • 如果操作的是文本数据时,这时候就应该使用字符流。
  • 如果操作的是非文本数据时,这时候则应该使用字节流。 图片 、 视频 、 音频、 word
public class CopyJava {
    public static void main(String[] args) throws IOException {
        //找到目标文件
        File inFile =  new File("F:\\Demo1.java");
        File outFile = new File("E:\\Demo2.java");
        //建立数据 的输入输出通道
        FileReader fileReader = new FileReader(inFile);
        FileWriter fileWriter = new FileWriter(outFile);
        //边写边读      
        char[] buf = new char[1024];
        int length = 0 ; 
        while((length= fileReader.read(buf))!=-1){
            fileWriter.write(buf,0,length);
        }
        //关闭资源
        fileWriter.close();
        fileReader.close();
    }   
}
Autosar软件组件分析及ARXML文件分析 阅读详情

相关推荐

基于STM32的无人机智能避障与路径规划系统设计

本文详细介绍了基于STM32的无人机智能避障与路径规划系统设计,涵盖硬件选型、传感器组合、软件架构及算法实现。通过多传感器数据融合和改进的VFH+算法,系统在复杂环境中实现92%以上的避障成功率。STM32微控制器的实时性和低功耗特性为无人机自主导航提供了可靠保障,适用于工业巡检、仓储物流等场景。

blockchain9miner的博客 877

JavaIO流使用方式

1.1. 文件拷贝操作 需求:把copy_before.txt文件中的数据拷贝到copy_after.txt文件中 private static void copy() throws Exception { //1):创建源或者目标对象 File src = new File("file/copy_before.txt"); File dest = new Fi...

Jan-007的专栏 296

Arcgis填补栅格空缺值Nodata

Arcgis填补栅格空缺值Nodata

pass17的博客 1万+

JavaI/O流

为什么需要I/0流 当我们的程序需要从硬盘,网络,或其他应用程序中读取或写入数据时候,数据传输量可能很大,而我们的内存或带宽有限,无法一次性读取获取写入大量数据。 而流(Stream)可以实现一点一点的逐步传输数据。 想想我们是怎样下载一个大文件的, 下载软件(例如x雷)并不会占用你内存很大的空间, 而只是在内存划分一个缓冲区, 一点一点地下载到自己的内存(缓冲区满了再写到硬盘),。 Stream Stream是一个java类,这个类用于java程序和外部设备之前的输入输出操作。 所谓外部设备可以

m0_64113557的博客 671

某知名系统漏洞挖掘与利用思路探索

本文以安全研究为目的,分享对该套系统的代码审计和漏洞挖掘过程,文中所提到的漏洞均已提交给CNVD&CITIVD,请勿用做非法用途。

C20220511的博客 1905

nRF52840开发环境搭建:从零开始配置Keil与SDK

本文详细介绍了nRF52840开发环境搭建的全过程,包括硬件准备、Keil MDK与nRF5 SDK的安装配置、常见问题解决方案及蓝牙功能开发进阶。特别强调了J-Link调试器的使用和SDK版本匹配的重要性,帮助开发者快速上手nRF52840开发。

weixin_29176179的博客 885

[2017.11.25]IO流

1.文件的字节输入流 使用改流读数据 public FileInputStream(String name) 2.开发步骤: 1):创建字节文件输入流对象 2)读数据 3)释放资源 3.读数据的两种方式: 1)public int read():一次读取一个字节 2)p

Lily_Evans的博客 304

人形机器人骨骼材料选型实战:从铝合金到碳纤维的5种方案对比

本文深入探讨人形机器人骨骼材料的选型策略,对比铝合金、镁合金、钛合金、碳纤维复合材料及3D打印材料等5种方案的性能优劣。通过建立强度-重量比、疲劳寿命等核心评价维度,结合具体应用场景,提供科学的材料决策方法论,助力开发者优化机器人结构设计,实现性能与成本的平衡。

weixin_29199873的博客 441

在java中使用流时为什么总是使用1024大小的byte数组?

现代操作系统的内存管理都具有分页机制,而内存页的大小都是1024的整数倍,定义1024整数倍大小的缓冲区在分配内存时将不会形成碎片。

xujingcheng123的博客 5317

Qt5.15.2配置安卓环境

否则,将会跳转到github,你可以自行下载解压到你设置的目录中,然后Qt会自动检测到。以上所需的工具确实有些繁多,而且如果单独下载又涉及科学上网问题,版本问题十分麻烦,好在Qt Creator 4.12之后已经可以自动下载SDK工具,NDK,基础包,openssl,以及gradle等,十分省心。回到正题,无论通过在线安装的方式,安装时勾选了Android,还是编译的方式,编译时编译了Qt Android库,想要使用Qt开发安卓应用仍然需要一些其他工作,包括安装编译安卓项目需要的SDK,NDK等。

weixin_41392061的博客 979

Google Gemini 模型本地可视化

Google近期发布了Gemini模型,而且开放了Gemini Pro API,Gemini Pro 可免费使用!Gemini Pro支持全球180个国家的38种语言,目前接受文本、图片作为输入并生成文本作为输出。Gemini Pro的表现超越了其他同类模型,当前版本配备了 32K 文本上下文窗口,可免费使用,且其定价将十分有竞争力。Gemini Pro具备丰富的功能:函数调用、数据嵌入、语义检索、自定义知识嵌入以及聊天功能。

HJ_blog 1248

JavaIO流学习总结

面试难免让人焦虑不安。经历过的人都懂的。但是如果你提前预测面试官要问你的问题并想出得体的回答方式,就会容易很多。此外,都说“面试造火箭,工作拧螺丝”,那对于准备面试的朋友,你只需懂一个字:刷!给我刷刷刷刷,使劲儿刷刷刷刷刷!今天既是来谈面试的,那就必须得来整点面试真题,这不花了我整28天,做了份“Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法等”

2401_84049040的博客 726

“华为杯”研究生数学建模竞赛2017年-【华为杯】B题:面向下一代光通信的 VCSEL 激光器仿真模型

得出以下主要结论:在相同的偏置电流条件下,随着温度的升高,带宽的峰值向。在相同的温度下,随着电流的增大,带宽的峰值越小且曲线由波峰形状。方案,包括可能的数学公式,不同温度和偏置电流下的带宽响应曲线,并与问题。线,得出以下主要结论:在相同的偏置电流条件下,随着温度的升高,带宽的峰。在相同的温度下,随着电流的增大,带宽的峰值越小且曲线由波峰形状逐渐变得。得的激光器特性曲线和模型中仿真得到的特性曲线,之后,可以将两组曲线的差。说明的是,由于数值优化算法的成功与否很大程度上依赖于初始参数的猜测,参。

getusushu的博客 99

JavaIO流知识点整理

IO流 字节流 从文件中读取字节问题 read()返回数字含义 原文件内容:1234 输出: 49 50 51 52 package anomyous; import java.io.*; public class Test { public static void main(String[] args) throws IOException { File file=new File("speech.txt"); FileInputStream fin=new

weixin_44151448的博客 700

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

【学习笔记】Java IO流之字节流和字符流知识点整理

在try-catch-finally块外声明变量并初始化为null,try块内初始化、读写流,在finally块中关闭流声明输入输出流变量。文件复制示例:将一个文件中的内容复制到另一个文件中,并使用缓存流提高读写效率。在try块中定义输入输出流对象,则会在流的读写操作结束之后由系统自动关闭流。

小冷coding的博客 603

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

HoRain云--JavaIO流进阶:字符流与字节流深度解析

📌 选择字节流还是字符流?├── 处理文本文件(.txt, .java, .xml, .json)→ 字符流├── 处理二进制文件(.jpg, .png, .mp3, .mp4)→ 字节流├── 不确定文件类型 → 字节流(更安全)└── 需要指定编码 → 转换流 + 字节流。

sinat_57153473的博客 419

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

JavaIO编程二:字节流与字符流

知识 流主要是指的数据的处理方式,以及目标内容的处理机制,所有的流部分分为输入流和输出流,在java.io包中针对输入流和输出流分为两种: 字节操作流:OutputStream(字节输出流)、InputStream(字节输入流) 字符操作流:Writer(字符输出流)、Reader(字符输入流) 不管使用哪一种操作流,本质上的操作流程都是类似的: 通过File类设定要操作的文件路径或者IP地址 通过字节流或字符流的子类为父类进行对象实例化处理 进行读、写的流操作 流属于宝贵资源,操作完毕之后必须进行关闭

qq479850581的博客 443

文件传输——JavaIO流

前言   近期发现自己IO流掌握的不够熟练,遂跟着慕课的一套课花了半天时间系统练了一遍手。整理笔记和代码如下,也参杂了自己的理解。课程链接   代码按照章节上传到了我的GitHub上: 脑图概览(简要): 注:每章内容前都有本章的脑图,方便复习,也可根据需要查看内容。 第1章 文件的编码   文本文件就是字节序列,可以是任意编码的字节序列。   所以一切从文件的编码说起。 utf-8...

JeremyJiaming的博客 652

java io流类一览表_Java 编程之IO流资料详细整理

java IO详解:Java流操作有关的类或接口:Java流类图结构:流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流字符流和字节流字符流的由来: 因为数据编码的不同...

weixin_28979345的博客 316

java开发面试题带答案下载,JavaIO流学习总结

由于文案过于长,在此就不一一介绍了,这份Java后端架构进阶笔记内容包括:Java集合,JVM、Java并发、微服务、SpringNetty与 RPC 、网络、日志 、Zookeeper 、Kafka 、RabbitMQ 、Hbase 、MongoDB、Cassandra 、Java基础、负载均衡、数据库、一致性算法、Java算法、数据结构、分布式缓存等等知识详解。本知识体系适合于所有Java程序员学习,关于以上目录中的知识点都有详细的讲解及介绍,掌握该知识点的所有内容对你会有一个质的提升,

2401_84010744的博客 966

Java知识整理——IO流

(1)、JavaIO流使用了一种装饰器设计模式,将IO流分成底层节点流和上层处理流。 (2)、Flie(java.io.File)类 文件和目录路径名的抽象表示形式,与平台无关 File 能新建、删除、重命名文件和目录,但 File不能访问文件内容本身。 构造方法 public File(String pathname):如果pathname是相对路径,则默认的当前路径在系统属性user...

胖子 438

Java IO面试题及答案整理汇总

说到Java开发,所有的java程序员都知道JavaIO流,而且相信大家在具体的工作中也都会用到,但是其实很多朋友们并没有完全掌握java IQ流的内容,而且java IO在java 面试中也会考察到,是在面试官常考的知识范围内的。近期也有不少的小伙伴面临着就业面试的问题,下面就整理了一些java IO的面试题及答案,帮助大家学习一下。 1、字节流和字符流的区别? 答:字节流读取的时候,读到一个字节就返回一个字节;字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在 UTF-8 码表中是 3 个

shuux666的博客 4286

IO流常见的面试题,初级java工程师面试题

字符流和字节流的使用非常相似,但是实际上字节流的操作不会经过缓冲区(内存)而是直接操作文本本身的,而字符流的操作会先经过缓冲区(内存)然后通过缓冲区再操作文件。1.大多数情况下使用字节流会更好,因为大多数时候 IO 操作都是直接操作磁盘文件,所以这些流在传输时都是以字节的方式进行的(图片等都是按字节存储的)2.对于 Java 字符流的操作都是在缓冲区操作的,所以如果我们想在字符流操作中主动将缓冲区刷新到文件则可以使用 flush() 方法操作。处理流:在节点流的基础上对之进行加工,进行一些功能的扩展。

weixin_57485542的博客 411

java IO流

JavaIO流 1、字节/字符流的介绍 *Java数据流都存在Javaio包里面 *字节流1个字节,以InputStream、OutputStream为基类;类名大多以Stream结尾 *字符流2个字节,以Reader、Writer为基类,类名大多以Reader/Writer结尾 *所谓的in、out、输入、输出都是相对于内存而言的 1.1 字节流 *输入字节流: InputStream的子类...

qq_42964601的博客 274

JAVAIO整理

IO分字节流和字符流 FileInputStream 用于字节流 InputStreamReader是字节流通向字符流的桥梁 BufferedReader是从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取 通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read()

silence2015的专栏 533
上一篇: java的File类
下一篇: Maven入门
PinGool
博客等级 码龄10年 6粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值