Java教程

第十章 Java输入与输出

本文主要是介绍第十章 Java输入与输出,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

一、小结

  使用Java语言提供的输入/输出(I/O)处理功能可以实现对文件的读写、网络数据传输等操作。利用I/O处理技术可以将数据保存到文本文件、二进制文件甚至是ZIP压缩文件中,以达到永久保存数据的要求。使用输入输出流可以读取和写入数据到文件、网络、打印机等资源和设备。输入输出流又可以细分为细节流和字符流,其中字节流以计算机能识别的二进制操作数据,所以,它能够访问任何类型的数据,包括图片、音频、视频和文本等。而字符流主要用于操作文本数据,这些文本可以是计算机能显示的所有字符,所以它多用于文本、消息,以及网络信息通信中。是以哦那个对象序列化技术可以通过对象输入输出流保存和读取对象,将一个对象持久化(保存成实际存在的数据,例如数据库或文件),能够永久保存对象的状态和数据,在下一次启动时,可以直接读取对象数据,将其应用到程序中。

  要点:了解File类及常用方法、了解流的概念、掌握字节流的使用方法、掌握字符流的使用方法、理解RandomAccessFile类、了解过滤器流、了解对象序列化技术。

二、测验

 

大雾??????

 

 

 

 

 

 File类提供的常用方法中exists()用法:new一个File类的File对象,使用时在File后用括号括起要验证的文件的路径。

 

 在Java中,要创建一个新目录,要使用File类的实例。

 

 File类是一个与流无关的类!!!!!!!!!File类的对象可以获取文件及其文件所在的目录、文件的长度等信息。

 

 

 

 

 

 

 

 

 

StringBuilder简介
StringBuilder 最早出现在JDK1.5,是一个字符拼接的工具类,它和StringBuffer一样都继承自父类AbstractStringBuilder,在AbstractStringBuilder中使用char[] value字符数组保存字符串,但是没有用final关键字修饰,所以StringBuilder是可变的。

性能
StringBuilder 对字符串的操作是直接改变字符串对象本身,而不是生成新的对象,所以新能开销小。
与StringBuffer相比StringBuilder的性能略高(15%~30%),StringBuffer为保证多线程情况下的安全性(synchronize加锁)而牺牲了性能,以时间来换取安全。而StringBuilder则没有保证线程的安全,从而性能略高于StringBuffer。

使用场景
频繁使用字符串拼接的时候可以用StringBuilder(推荐)或者StringBuffer。

用法
一、StringBuilder对象的创建(下文builder是StringBuilder创建出来的对象)
1.常规创建
StringBuilder builder = new StringBuilder();

2.在创建的时候添加初始字符串
StringBuilder builder = new StringBuilder("abc");

3.在创建的时候添加初始长度
StringBuilder builder = new StringBuilder(初始长度);
这里需要注意的是如果在StringBuilder的对象创建时没有指定长度,StringBuilder对象会自动生成一个16位的字符数组

二、StringBuilder对象的方法
数据的种类可以有:

Object
String
StringBuffer
CharSequence
char[]
boolean
char
int
long
float
double

1.builder.append()
作用:追加数据

builder.append("just");
在加入新字符串时,不会在内存中新开辟字符串空间,只是给原有的字符串尾部加入新字符串

2.builder.insert()
作用:向指定位置插入数据

builder.insert(0, "you");
每次加入新字符串之后都会改变字符串中每个字符的地址
插入后原始指定位置的数据向后移

3.builder.deleteCharAt()
作用:删除指定位置的数据

builder.deleteCharAt(index);

4.builder.delete( )
作用:删除指定范围的数据左闭右开

builder.delete(beginIndex, endIndex);

范围:从开始位置到结束位置的前一个

5.builder.toString()
作用:将对象中的数据以字符串的形式返回

builder.toString();

6.builder.reverse()
作用:将对象中的数据反转

builder.reverse();

注意
原始数组长度不够时,在传入新字符串时会增加数组长度,并将原来的数据传到新数组中,反复添加遇到这种情况时会对内存造成损耗,为了避免这种情况,可以在创建时提前给StringBuilder对象设置长度:StringBuilder builder = new StringBuilder(初始长度)。

 

 

 

 

 

 

 

 正确改正如上

三、习题

这篇关于第十章 Java输入与输出的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!