字节跳动还是字符跳动(代码片段)

author author     2022-12-06     592

关键词:

字节跳动还是字符跳动

很多人对于java的io流的概念不太理解,什么是流呢?它其实就是指的是能够产生数据和接收数据的对象。那么有字节流的操作和字符流的操作,我们分别看一下这两种

面向字节流的输入输出

InputStream和OutputStream主要是对字节的处理,我们经常是对文件的操作,而这用到的类就是FileInputStream和FileOutputStream

面向字符流的输入输出

Reader和Writer主要是对字符的处理,Reader类是用于读取字符流的抽象类,它的子类需要实现 read()方法 和 close()方法。Writer类用于写入字符流的抽象类,它的子类需要的实现 write()方法、flush() 方法和 close()方法。

两者的选择

对应大部分场景下,Reader和Writer的相关类可以替代面向字节流的操作,有一些场景还不得不用字节流操作,也就是说能用Reader和Writer就用Reader和Writer。

两者的转换

有时候我们既需要对字符流操作,有需要对字节流操作,这就需要两者进行转换了,

而InputStreamReader和OutputStreamWriter充当了适配器的角色,会将字节流转换为字符流。

InputStreamReader 读取字节并使用指定的字符集将它们解码为字符。字符集可以作为参数来指定或者使用系统默认字符集。InputStreamReader 的 read() 方法在每次调用都可能从底层字节输入流中读取一个或多个字节。为了实现字节到字符的有效转换,可以从底层流中预先读取比满足当前读取操作所需的更多的字节。 官方建议通过BufferedReader来装饰InputStreamReader提高效率

BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 

OutputStreamWriter 写入它的字符使用指定的字符集编码为字节。同样的,字符集可以由名称指定,也可以显式给出,或者可以接受平台的默认字符集。 OutputStreamWriter的每次调用 write() 方法都会导致调用编码转换器。生成的字节在写入底层输出流之前累积在缓冲区中,我们要指定足够大的缓冲区,而传递给 write() 方法的字符不会被缓冲。 我们可以使用BufferedWriter装饰 OutputStreamWriter 避免频繁调用编码转换器

Writer out = new BufferedWriter(new OutputStreamWriter(System.out)); 

总结

这篇文章主要讲了面向字节流涉及到的类和面向字符流涉及到的类,我们大部分情况使用面向字符流的操作,因为字符是在字节流之后实现的,所有它提供了相应的适配器:InputStreamReader和OutputStreamWriter可以实现从字节转为字符

❤️ 感谢大家

如果你觉得这篇内容对你挺有有帮助的话:

  1. 欢迎关注我❤️,点赞

    2021届字节跳动客户端提前批一面凉经(代码片段)

    不得不说字节还是很难进的,提前批算是去试了一个水,自己的算法功底,还远远达不到要求,对操作系统,java虚拟机,多线程,进程等知识还有很大的欠缺,深度还远远不够,所以还是努力的刷题吧,希望秋招能顺利进入字... 查看详情

    去了字节跳动,回来聊一聊字节跳动的面试...(代码片段)

    一、算法题一面:1.lc里最长上升子序列的变形题2.实现输入英文单词联想的功能二面:1.矩阵旋转,要求空间复杂度O(1)2.无序的数组的中位数。要求时间复杂度尽可能的小二、计算机网络tcp怎么保证数据包有序主机每... 查看详情

    字节跳动2-1算法二轮面试202203-29(代码片段)

    罗马数字包含以下七种字符: I, V, X, L,C,D 和 MI      1V      5X      10L      50C      100D      500M      1000这道题对应的是leetcode 中的12.整数转罗马数字packageexample;publicclass... 查看详情

    字节跳动一面(凉)(代码片段)

    视频面试,上来就是一道算法题,LeetCode上的原题,440题(qaq,后悔当初没写到) publicintfindKthNumber(intn,intk)intcur=1;--k;while(k>0)longstep=0,first=cur,last=cur+1;while(first<=n)step+=Math.min(n+1,last)-first;first* 查看详情

    字节跳动面试——算法

    目录一面:二面三面一面:随机森林的随机性怎么体现Bagging和Boosting区别三道代码题1.给一字符串,只包含(和),求最长连续子串2.给一个字符串,列出所有可能的ip组合3.k个有序链表合并二面1.我看你简历上都是CV项目,你愿... 查看详情

    字节跳动实习生删库高操作(代码片段)

    ...6月24日消息,脉脉用户“程序员。白胜”在社交媒体称,字节跳动一名实习生删除了公司所有lite模型,在脉脉上引发关注。这名用户随后在回复中称“实习生直接delete父目录,还加了skiptrash”。lite全称TensorFlowLite是一种用于移... 查看详情

    ❤️tiktok字节跳动编程题实战2022校招——吐血分享总结。(代码片段)

    ❤️TikTok字节跳动编程题实战2022校招——吐血分享总结。前言+说明一、算法编程题(种树)二、算法编程题(小A的吃鸡之旅)三、算法编程题(有序最大K位数)四、算法编程题(测试计划的最大... 查看详情

    字节跳动官方出品,超级好用还能自定义(代码片段)

    点击蓝字关注我们将前端实验室设为星标精品文章第一时间阅读大家好,我是前端实验室的大师兄!在项目开发过程中,图标是永远绕不开的话题。今天大师兄就和大家来聊一聊~图标库现状问题图标数量少难以满足产品项... 查看详情

    字节跳动2-1三轮大数据方向算法20220330(代码片段)

    新鲜出炉,大数据的总监,一上来什么都没问,让我写一个非递归后续遍历。很不好意思让他打脸了,这个题我做过5片了,理解上还是很深刻的。我就想对他说为啥面试连自我介绍都不给我,就让我做题&#... 查看详情

    字节跳动青训营笔试题解(代码片段)

    ...码T2.社交圈题目思路代码四、简答题题目思路前言第五届字节跳动青训营-后端专场笔试题解,简单做了一下,选择题和简答题不知道是否正确,编程题是通过了的,有问题欢迎评论,我会及时改正的~一、单选... 查看详情

    字节跳动青训营笔试题解(代码片段)

    ...码T2.社交圈题目思路代码四、简答题题目思路前言第五届字节跳动青训营-后端专场笔试题解,简单做了一下,选择题和简答题不知道是否正确,编程题是通过了的,有问题欢迎评论,我会及时改正的~一、单选... 查看详情

    字节跳动+百度+阿里巴巴高频面试题之链表专题(代码片段)

    ...巴巴二面原题)2、判断单链表是否是回文结构。(2019年字节跳动二面原题)3、删除一个有序单链表中的重复节点。(2019年字节跳动二面原题)4、复杂链表的复制。(2020年百度二面原题)1、逆置一个单链表。OJ链接:https://leet... 查看详情

    字节跳动大数据开发面试题-附答案(代码片段)

    此面试题来自牛客网友分享的字节跳动应届一面,面试时长一小时。网友情况:985本硕。参考答案由本公众号提供。如有错误,欢迎指正!以下为面试过程中提问,岗位为大数据开发:自我介绍+项目介... 查看详情

    字节跳动过冬

    字节跳动也开始控制成本。字节跳动踩下了刹车。尽管今年以来不少知名大公司都被爆出裁员,但是,当一直高速运转的字节跳动也开始裁员的时候,大家难免还是心生疑虑,字节到底怎么了?从目前爆出的... 查看详情

    冲上热搜!字节跳动重大宣布:取消!员工炸了:直接降薪15%?快手已抢先(代码片段)

    ...流群????????来源丨中国基金报 安曼定义了“大小周”的字节跳动,决定亲手毁灭这个定义……7月9日,据字节跳动的员工爆料,字节跳动人力与管理部对内宣布,将于2021年8月1日起取消隔周周日工作的安排,... 查看详情

    字节跳动开源最新gan压缩算法,算力消耗可减少至1/46(代码片段)

    字节跳动近期开源了一项代号为OMGD的压缩技术。这是字节自研的GAN(生成对抗网络)压缩算法,在保证生成效果不变的前提下,算力消耗最低可以减少到原来的1/46,相比之前业界的最佳压缩效果提升一倍多。... 查看详情

    字节跳动c++云原生二面(65min)(代码片段)

    字节跳动C++云原生二面(65min)面试问题HTTP1.0、1.1和2.0的区别和差异是什么《HTTP1.0和1.1的区别》HTTP1.1默认开启长连接(keep-alive)而HTTP1.0需要添加参数,在一定程度上减少了建立和关闭连接的消耗和延... 查看详情

    字节跳动c++云原生二面(65min)(代码片段)

    字节跳动C++云原生二面(65min)面试问题HTTP1.0、1.1和2.0的区别和差异是什么《HTTP1.0和1.1的区别》HTTP1.1默认开启长连接(keep-alive)而HTTP1.0需要添加参数,在一定程度上减少了建立和关闭连接的消耗和延... 查看详情