黑马程序员_java基础三(IO和GUI)

本文详细介绍了Java中的IO流,包括字节流、字符流、缓冲区、转换流及其应用,同时讲解了标准输入输出流的使用。此外,还探讨了GUI图形用户接口,包括CLI、事件监听机制及常用布局管理器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

java基础总结三

IO流

1.IO流用来处理设备之间的数据传输,java对数据的操作是通过流的方式,java用于操作流的对象都在IO包中。

2.流按操作数据分为两种:字节流与字符流

3.流按流向分为:输入流,输出流

IO流常用的基类:

字节流的抽象基类:InputStream,OutputStream

字符流的抽象基类:Reader,Writer

注意:由这四个类派生出来的子类名称都是以其父类名作为子类名的后缀。

           eg:InputStream的子类:FileInputStream

                    Reader的子类:FileReader

IO程序的书写:

记得要在finally中对流进行关闭

 1.有了垃圾回收机制为什么还要调用close方法进来关闭呢?

流不单在内存中分配了空间,也在操作系统占有了资源,java的gc是能从内存中回收不使用的对象,但对操作系统分配的资源是无能为力的,所以就要调用close()方法来通知OS来释放这个资源。

字符流---创建文件

创建流对象,建立数据存放文件

   FileWriter fw=new FileWriter("Text.txt");

调用流对象的写入方法,将数据写入流

fw.write("text");

关闭流资源,并将流中的数据清空到文件中

fw.close();

字符流--读取文件

建立一个流对象,将以存在的一个文件加载进流

FileReader fr=new FileReader("Test.txt");

创建一个临时存放数据的数组

char[] ch=new char[1024];

调用流对象的读取方法将流中的数据读入到数组中。

frread(ch);

注意:

定义文件路径时,可以用"/"或者"\"。

在创建一个文件时,如果目录下有同名文件将被覆盖。

在读取文件时,必须保证该文件已存在,否则出异常。

字符流的缓冲区:

缓冲区的出现提高了对数据的读写效率。

对应类:BufferWriter BufferReader

缓冲区要结合流才可以使用

在流 基础上对流的功能进行了增强。

字节流

基本操作与字符流类相同

但它不仅可以操作字符,还可以操作其他媒体文件

字节流缓冲区

同样是提高了字节流的读写效率

转换流

inputStreamReader,OutputStreamWriter

转换流 的由来:

字符流与字节流之间的桥梁

方便了字符流和字节流之间的操作

转换流的应用

字节流中的数据都是字符时,转成字符流操作更高效

标准的输入输出流

System 类中的字段:in out

它们各代表了系统标准的输入和输出设备

默认输入设备是键盘,输出设备是显示器

System.in的类型是InputStream

System.out的类型是PrintStream,是OutputStream的子类FilterOutputStream的子类

流的基本应用

1.流是用来处理数据的,处理数据时,一定要先明确数据源,与数据目的地。

2.数据源可以是文件,可以是键盘。

3.数据目的地可以是文件,显示器,或者其他设备。

4.流只是在帮助数据进行传输,并对传输的数据进行处理,比如过滤处理,转换处理。

File类:

用来将文件或者文件夹封装成对象

方便对文件与文件夹的属性信息进行操作

File对象可以作为参数传递给流的构造函数

递归:

递归就是函数自己调用自己

注意:递归时一定要明确结束条件

IO包的其他类:

RandomAccessFile随机访问文件,自身具备读写的方法。通过skipBytes(int x),seek(int x)来达到随机访问。

管道流:PipedInputStream和PipedOutputStream输入输出可以直接进行连接,通过结合线程使用。

打印流:PrintWriter与PrintStream可以直接操作输入流和文件

序列流:SequenceInputStream对多个流进行合并

操作对象:ObjectInputStream与ObjectOutputStream,被操作的对象需要实现Serializable(标记接口)

操作基本数据类型:DataInputStream与DataOutputStream

操作字节数组:ByteArrayInputStream与ByteArrayOutputStream

操作字符数组:CharArrayReader与CharArrayWriter

操作字符串:StringReader与StringWriter

字符编码:

通过子类转换流来完成:InputStreamReader OutputStreamWriter

在对两个对象进行构造时,可以加入字符集。

常见码表信息:

ASCII:美国标准信息交换码。用一个字节的7位可以表示。
ISO8859-1:拉丁码表。欧洲码表用一个字节的8位表示。
GB2312:中国的中文编码表。
GBK:中国的中文编码表升级,融合了更多的中文文字符号。
Unicode:国际标准码,融合了多种文字。所有文字都用两个字节来表示,Java语言使用的就是unicode
UTF-8:最多用三个字节来表示一个字符

GUI(Graphical User Interface)图形用户接口

CLI Command Line User Inerface 命令行用户接口

java.awt:需要调用本地系统方法实现功能。属于重量级控件。会导致有可能在不同的操作系统,用户界面不一样。

javax.Swing在awt的基础上,建立了一套图形界面系统,其中提供了更多的组件而且完全由java实现。增强了移植性,属于轻量级、

常见的布局管理器:
FlowLayout(流式布局管理器)从左到右的顺序排列。

Panel默认的布局管理器。BorderLayout(边界布局管理器)东,南,西,北,中

Frame默认的布局管理器。GridLayout(网格布局管理器)规矩的矩阵

CardLayout(卡片布局管理器)选项卡

GridBagLayout(网格包布局管理器)非规则的矩阵

事件监听机制


事件源 事件 监听器 事件处理


---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------
图书资料管理信息系统,带源代码、数据库sql文件、课设报告,具备如下基本功能: 1、 系统管理功能有:角色管理、用户管理、修改密码。主要实现系统的安全管理,不同的操作者有不同的权限,可以执行不同的操作。普通读者的权限只能是查询图书及自己的借阅情况;而图书馆管理员可以对图书信息进行管理,如对新书入库,也可以管理用户,如添加新用户删除不用的账号等。 2、 进书管理功能有:登记基本的图书信息。这部分的功能用于登记新书的书名、作者、出版社、价格、进书的册数、进书日期、ISBN等。 3、 图书入库管理功能有:对新书分类编目,及时更新图书库中的图书信息。这部分的功能用于对所购进的新书,按其种类学科进行编目,给与唯一的书号;及时更新书库中的图书信息,包括书名、书号、作者、出版社、价格、库存位置库存册数这些信息,方便读者查询借阅。 4、 查询功能功能有:查询图书的信息,查询读者的借阅情况。这部分的功能主要提供多种方式的查询服务。读者可以根据书名、作者或关键字模糊查询图书信息;读者也可以根据自己的借书证号查询自己的借阅情况,如已借了几本书,借书日期,还书日期,有没有续借等。 5、 借书/还书管理功能有:借书管理、还书管理。这部分的功能是当读者借书时,系统根据借书证号识别读者身份,核对读者的借书信息,做出判断如可不可以借、还可借几本,成功借阅后记录在借书信息并修改书库图书信息。当读者还书时,系统根据借书证号识别读者身份,核对读者的借书信息,做出判断如有没有超期,要不要罚款,需要罚多少等,最后还书成功,修改书库图书信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值