首页 > 其他分享 >第11周 预习报告:流与文件

第11周 预习报告:流与文件

时间:2022-11-07 21:58:07浏览次数:37  
标签:11 文件 字节 字符 二进制 读写 预习 文本文件

程序可以处理的数据来源除了文件还有哪些?对不同的数据来源共同的操作是什么?

  • ①还可以是控制台的输入。联机下的网络上的数据。
  • ②数据的读写

将对不同数据源中数据的读写抽象为对流的读写,有什么好处?

  • ①无需管理数据的来源(文件,控制台,网络等),读写时只关心流的操作,无需关心具体细节(封装)。
  • ②提供统一的操作接口,例如read(),write()。

二进制文件与文本文件有什么区别?字节流与字符流之间有什么关系?为什么有的文本文件打开会乱码?怎么解决?

  • 二进制文件是基于值编码的文件,也就是说二进制文件是由0,1组成的

  • 文本文件时基于字符编码的文件,文本文件是由字符组成的

  • 字节流和字符流用法基本一致,但是字节流默认不使用缓冲区,字符流使用缓冲区。字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元;字符流通常处理文本数据,它支持写入及读取Unicode码元。

  • FileReader按照系统默认字符集(GBK)读取UTF-8编码的文件,会出现乱码。解决方案:使用InputStreamReader,字节流和字符流的桥梁。

字符与字节之间的关系是什么?尝试使用Visual Studio Code的Hex Editor插件打开一个文本文件。在文本文件中输入"123abc中文"。观察:一个英文字符占几个字节,一个中文字符占用几个字节。在Java程序中,使用字节流怎么将这个文件中的数据正确读取并组装起来。

在不同的码元里面,字节和字符对应关系是不同的,例如:

  • ASCII码1字符代表1字节
  • Java的Unicode码1字符对应2字节
  • UTF-8 一个英文一个字节,一个中文3字节
    ....


一个英文占用一个字节,一个中文占用3个字节

有一个stus数组,里面有若干Student对象(String name, int age, boolean gender, double score)。要将这些对象高效率地存储到文件中,需要使用哪些流?使用二进制流与使用字符流将这个数组存储到文件有何不同?使用二进制流与使用字符流从文件中读取并组装成对象有何不同?

  • 使用FileOutputStream文件流,BufferedOutputStream缓冲流,ObjectOutputStream字节流
  • 二进制流是利用01存储信息,字符流是以字符形式存储信息

使用什么类可以对文件进行随机存取?读写的单位是什么?为什么不是字符呢?

  • RandomAccessFile支持对文件的随机读写

  • byte字节

  • 用RandomAccessFile类的数据一般都是以字节的形式保存在文件中的

标签:11,文件,字节,字符,二进制,读写,预习,文本文件
From: https://www.cnblogs.com/magicfat/p/16867607.html

相关文章

  • 11.6;周日;复盘
    复盘复习回顾前一周所学,温故知新。健身知识体脂率:脂肪占体重的比重0.5kg肌肉,基础代谢提升50——100大卡肌肉生长1肌原纤维:体积,力量;大重量,小组数2肌浆:体积,耐力;小......
  • ASP .NET Core 访问共享文件夹
    ASP.NETCore访问Windows共享目录安装Neget包Install-PackageSharpCifs.StdCodeSampleusingSharpCifs.Smb;usingSystem.IO;usingSystem.Linq;namespace......
  • delphi D11编程语言手册 学习笔记
    ●P30:在声明一个函数或者过程时,在其上方用///或者{!  插入注释,在其它地方使用时,把鼠标悬停在这个函数或者过程上面,会显示出这些注释Delphi新注释更多请查......
  • 【2022-11-07】 luffy项目实战(三)
    一、luffy前台配置1.1gloabl.css/*声明全局样式和项目的初始化样式*/body,h1,h2,h3,h4,h5,h6,p,table,tr,td,ul,li,a,form,input,select,option,......
  • Minio分布式文件存储
    packagewangbiao.config.minio;importcom.fasterxml.jackson.core.JsonProcessingException;importio.minio.*;importio.minio.errors.*;importio.minio.messag......
  • 【流水】2022.11.07
    今天有事考试给孩子整自闭了我切不动黄题.png难度黑-黄-蓝-红属实蚌⑨为什么数据锅了呜呜呜以及dottle是粉兔他爹.png补信息学考讲的真是骗分技巧全都是骗......
  • R3下用ZwQueryObject/ZwDuplicateObject关闭互斥体和解除文件占用
      不少程序在运行时会创建/打开全局Mutex,来限制用户多开。百度上搜一圈下来,他们的实现基本是这样:intmain(intargc,char*argv[]){HANDLEhMtx=CreateMutex(NULL......
  • Createprocess 输入输出重定向到文件
    当要执行一些系统命令完成一些任务时,会调用Createprocess/system/_popen。后两者运行时会出现cmd对话框窗口,有碍观瞻。Createprocess也有同样问题,但是可以通过cmd/CComman......
  • 用blkid命令解读grub.cfg文件中的块设备
      ubuntu引导配置文件grub.cfg真是越来越难看懂了:启动菜单里找不到类似root=/dev/sda这种存放根文件系统的块设备名,取而代之的是一堆让人摸不着头脑的UUID:menuentry'......
  • <Oday安全 11.5利用未启用SafeSEH模块绕过SafeSEH>一节注记
      Oday安全一书的内容越往后越深奥,不得不做些注记备忘。  1.书P297插图11.5.6写道__except函数地址根据EBP-4的值得出。这是目前为止,书中写的最含糊的地方,需要展开......