第十周课程总结

时间:2019-11-03
本文章向大家介绍第十周课程总结,主要包括第十周课程总结使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

学习总结:

一,字节流与字符流

在Java中IO操作的步骤:

a,使用File类打开一个文件

b,通过子节流或字符流的子类指定输出的位置

c,进行读/写的操作

d,关闭输入操作

1),字节流:

字节流主要是操作byte类型数据,以byte数组为准,主要操作类为OutputStream和InputStream类

1,字节输出流:OutputStream

作用:向文件中写入文件

此类定义:

public abstract class OutputStream
extends Object
implements Closeable,Flushable

常用方法:

方法或常量 类型 描述
public void close() throws IOException 普通 关闭输出流
public void flush() throws IOException 普通 刷新缓冲区
public void write(byte[]b) throws IOException 普通 将一个byte数组写入数据流
public void write(byte[]b,int off,int len) throws IOException  普通 将一个指定范围的byte数组写入数据流
public abstract void write(int b) throws IOException 普通 将一个字节数据写入数据流

FileOutputStream子类构造方法:

public FileOutputStream(File file)throws FileNoFoundException

2,追加新内容:

如果重新执行程序,则肯定会覆盖文件中的已有内容,那么可以通过FileOutputStream类的另一中构造方法进行实例化,先文件追加内容,方法如下:

public FileOutputStream(File file,boolean append) throws FileNotFoundException

3,字节输入流:InputStream

定义:向文件中读取内容

public abstract class InputStream
extends Object
implements Closeable

常用方法:

方法或常量 类型 描述
public int available() throws IOException 普通 可以取得输入文件的大小
public void close() throws IOException 普通 关闭输入流
public abstract int read() throws IOException 普通 读取内容,以数字的方式读取
public int read(byte[]b) throws IOException 普通 将内容读到byte数组之中,同时返回读入数组的个数

FileInputStream类的构造方法如下:

public FileInputStream(File file) throws FileNotFoundException

注意:两个类是一抽象类,如果要想使用两类中的任意一类话,首先实例化对象。如果现在要操作的是一个文件,则可以使用FileOutputStream类或FileInputStream类,通过向上转型后,可以为OutputStream或InputStream实例化

           在File类中存在一个length()方法,可通过此方法取得文件的大小

2),字符流:

1,字符输出流:Writer

此类定义:

public abstract class Writer
extends Object
impleenments Appendable,Closeable,Flushable

常用方法:

方法或常量 类型 描述
public abstract void close() throws IOException 普通 关闭输出流
public void write(String str) throws IOException 普通 将字符串输出
public void write(char[] cbuf) throws IOException 普通 将字符数组输出
public abstract void flush() throws IOException 普通 强制性清空缓存

FileWrite类的构造方法定义:

public FileWrite(File file) throws IOException

2,字符输入流:Reader

定义:

public abstract class Reader
extends Object
implements Readable,Closeable

常用方法:

方法或常量 类型 描述
public abstract void close() throws IOException 普通 关闭输出流
public int read() throws IOException 普通 读取单个字符
public int read(char[] cbuf) throws IOException 普通 将内容读到字符数组之中,返回读入的长度

FileReader的构造方法定义:

public FileReader(File file) throws FileNotFoundException

注意:两个类也是抽象类,如果要使用两类中的任意一类话,则使用其子类,如果是向文件中写入内容,应该使用FileWrite的子类,如果是读取文件中的内容,应该使用FileReader的子类

3,区别:

a,操作代码不同

b,字节流在操作时本身不需要用到缓冲区(内存),是于文件本身直接操作,而字符流在操作时需要用到缓冲区,通过缓冲区在操作文件

缓冲区的概念:

可理解为一个特殊的内存,存储一些需要频繁使用的资源(文件或数据库),从而提高程序性能。

二,转换流:

OutputStreamWriter类:是writer的子类,将输出的字符流变为字节流,即将一个字符流的输出对象变为字节流输出对象

InputStreamWriter类:是Reader的子类,将输出的字节流变为字符流,即将一个字节流的输入对象变为字符流的输入对象

三,内存操作流:

字节内存流:ByteArrayInputStream(内存子节输入流),ByteArrayOutputStream(内存字节输出流),作用:将内容写入内存中

字符内存流:CharArrayReader(内存字符输入流),CharArrayWriter(内存字符输入流),作用:将内存中的数据输出

ByteArrayInputStream类的主要方法:

方法 类型 描述
public ByteArrayInputStream(byte[] buf) 构造 将全部的内容写入内存中
public ByteArrayInputStream(byte[] buf,int offset,int length) 构造 将指定范围的内容写入到内存中

ByteArrayOutputStream类的主要方法:

方法 类型 描述
public ByteArrayOutputStream() 构造 创造对象
public void writer(int b) 构造 将内容从内存中输出

四,打印流:

作用:提高输出数据的编写效率,实现输出数据的功能。

主要包含:字节打印流(PrintStream)和字符打印流(PrintWriter)

PrintStream类的常用方法:

方法 类型 描述
public PrintStream(File file) throws FileNotFoundException 构造 通过一个File对象实例化PrintStream类
public PrinStream(OutputStream out) 构造 接收OutputStream对象,实例化PrintStream类
public PrintStream printf(Locale l,String format,Object... args) 普通 根据指定的Locale进行格式化输出
public PrintStream printf(String format,Object.. args) 普通 根据本地环境格式化输出
public void print(boolean b) 普通 此方法被重载很多次,输出任意数据
public void println(boolean b) 普通 此方法被重载很多次,输出任意数据后换行

使用打印流进行格式化:

(直接使用printf()方法进行格式化)

字符 描述
%s 表示内容为字符串
%d 表示内容为整数
%f 表示内容为小数
%c 表示内容为字符

原文地址:https://www.cnblogs.com/chenqiang0630/p/11788156.html