首页 > 编程语言 >Java学习笔记(十五)

Java学习笔记(十五)

时间:2023-06-05 21:11:33浏览次数:47  
标签:字符 Java 字节 笔记 十五 缓冲区 new 转换

1. 请描述你理解的转换流

 转换流(InputStreamReader和OutputStreamWriter)是字节流和字符流之间的一种桥梁,用于将字节流转换为字符流或将字符流转换为字节流。转换流可以解决字节流和字符流之间的编码转换问题,从而使得我们可以方便地在不同的字符集之间进行转换。

2. 请描述你理解的字节缓冲流

 在Java中,字节缓冲流(BufferedInputStream和BufferedOutputStream)是一种可以提高I/O性能的流,它们通过在内存中创建一个缓冲区,以块的方式读取或写入数据,从而减少了I/O操作的次数,提高了数据读写的效率。

3. 请描述你理解的字符缓冲流

 在Java中,字符缓冲流(BufferedReader和BufferedWriter)是一种可以提高I/O性能的流,它们通过在内存中创建一个缓冲区,以块的方式读取或写入数据,从而减少了I/O操作的次数,提高了数据读写的效率。

4. Java IO里面的常用类有哪些

 字节流类、字符流类、基本数据类型和字符串流类、对象流类

其他类:

File:用于表示文件和目录的抽象类。

RandomAccessFile:用于随机访问文件的类。

Scanner:用于读取标准输入、文件或字符串的类。

PrintStream:用于打印输出的类,可以将数据写入文件或控制台。

5. Java 中有几种类型的流?JDK为每种类型的流提供一些抽象类以供继承,请说出他们分别是哪些类?

 字节流:主要由InputStream和OutputStream两个抽象类来定义

字符流:主要由Reader和Writer两个抽象类来定义,

字符串流:主要由StringReader和StringWriter两个类来实现,

对象流:主要由ObjectInputStream和ObjectOutputStream两个类来实现,

6. OutputStream里面的write()是什么意思?

 write()方法是用于向输出流中写入字节数据的方法。

7. BufferedReader属于哪种流?他主要是用来做什么的?

 缓冲字符输入流。主要用于提高读取文本数据的效率,通过缓冲机制,可以减少对底层资源(如磁盘或网络)的频繁访问次数,从而提高读取速度。

8. 什么是缓冲区?有什么作用?

 缓冲区(Buffer)是一种用于临时存储数据的内存区域,它可以在数据读写过程中,将一定量的数据暂时存储起来,然后在一定条件下(如缓冲区已满或达到一定的时间间隔)再将数据一次性读取或写入到目标设备中。缓冲区主要用于提高数据读写的效率和性能,减少对底层资源(如磁盘或网络)的频繁访问次数,从而提高数据读写速度和响应速度。

9. 字节流和字符流怎么转换?

将字节流转换为字符流:

InputStream in = new FileInputStream("example.txt");
Reader reader = new InputStreamReader(in, "UTF-8");
BufferedReader bufferedReader = new BufferedReader(reader);

将字符流转换为字节流

OutputStream out = new FileOutputStream("example.txt");
Writer writer = new OutputStreamWriter(out, "UTF-8");
PrintWriter printWriter = new PrintWriter(writer);


标签:字符,Java,字节,笔记,十五,缓冲区,new,转换
From: https://www.cnblogs.com/wgh123/p/17458929.html

相关文章

  • java程序设计对文件的操作
    1文件的读入与写进importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){try{FileinFile=newFile("D://example.txt");BufferedReaderbf=newBufferedReader(newFileReader(inFile));......
  • 0001-虚函数和虚表笔记
    目录一个空对象至少占用1字节的空间展开查看:原因是在栈上分配2个对象时,要区分地址classObject{};voidFunction(){Objecto1,o2;//需要区分o1,o2的地址}空类有虚函数,需要占用一个指针的空间,即:编译器会插入一个虚函数表指针vptr有虚函......
  • [学习笔记]计算机网络_物理层_传输介质
    双绞线、同轴电缆、光纤与无线传输介质双绞线双绞线的价格便宜,是最常用的传输介质之一,在局域网和传统电话网中普遍使用。模拟传输和数字传输都可以使用双绞线,其通信距离一般为几千米到数十千米。距离太远时对于模拟传输要用放大器放大衰减的信号;对于数字传输,要用中继器将失真......
  • Java中为什么禁止把SimpleDateFormat定位为static变量以及如果非要使用static定位Simp
    场景Java中ExecutorService线程池的使用(Runnable和Callable多线程实现):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/126242904Java中创建线程的方式以及线程池创建的方式、推荐使用ThreadPoolExecutor以及示例:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/art......
  • Java开发手册中为什么不建议在for循环中使用"+"进行字符串操作
    场景java开发手册中对于循环体中进行字符串的拼接要求如下:【推荐】循环体内,字符串的连接方式,使用StringBuilder的append方法进行扩展。说明:下例中,反编译出的字节码文件显示每次循环都会new出一个StringBuilder对象,然后进行append操作,最后通过toString方法返回Stri......
  • 记录--JavaScript 中有趣的 9 个常用编码套路
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助1️⃣set对象:数组快速去重常规情况下,我们想要筛选唯一值,一般会想到遍历数组然后逐个对比,或者使用成熟的库比如lodash之类的。不过,ES6带来了一个新玩意儿!它引入了一个全新的对象类型:Set!而且,如果结合上...展开运算符......
  • 详解JavaScript中的__proto__和prototype
    目录一、JS的对象创建方法二、双对象法则三、__proto__和prototypeprototype是什么?__proto__又是什么?对于JS来说,__proto__和prototype的区别是个绕不开的话题。本文就试图从它们的根本上说清楚它们是什么,又有什么区别,所以本文会从JS的对象开始说起,以其期待把本文的主题......
  • Javascript之深入浅出递归思想
    Javascript之深入浅出递归思想 “递归”在生活中的一个典例就是“问路”。如图小哥哥进入电影院后找不到自己的座位,问身边的小姐姐“这是第几排”,小姐姐也不清楚便依次向前询问,问至第一排的观众后依次向后反馈结果,“我是第一排”,“我是第二排”,···,最终确定自己座位所在排数......
  • java
    1.1运行机制1.2数据类型()1.2.1强类型语言要求变量的使用严格符合规定,所以变量都必须先定义后才能使用弱类型语言与强类型相反1.2.2Java数据类型分为两大类基本类型(primitivetype)引用类型(referencetype)1.2.3基本数据类型(primitivetype)数值类型整数类......
  • Java开发手册中为什么要求三目运算符必须要注意类型对齐
    场景java开发手册中对于三目运算符的使用要求如下:【强制】三目运算符condition?表达式1:表达式2中,高度注意表达式1和2在类型对齐时,可能抛出因自动拆箱导致的NPE异常。说明:以下两种场景会触发类型对齐的拆箱操作:1)表达式1或表达式2的值只要有一个是原始类型......