一个流可以理解为一个序列,输出流从一个源头输出数据,输入流向目标输入数据。这些流在数据传输和网络编程起着非常大的作用,下面我们学习其中形形色色的类,了解他们之间的关系与作用。
下图是一个输入流与输出流的类层次图
一,InputStream与OutputStream,字节输入流与字节输出流
InputStream是所有字节输入流的父类,其中子类FileInputStream,DataInputStream,BufferedInputStream,ByteArrayInputStream较为常见,一会详细介绍一下
InputStream常用方法总结
OutputStream这个抽象类是表示字节输出流的所有类的超类。输出流接受输出字节并将它们发送到某个接收器
b.length
从指定字节数组到此输出流的字节File
或者对一个FileDescriptor
..文件是否可用或是否可以创建取决于底层平台。特别是有些平台只允许一个文件被打开,以便只写一个。FileOutputStream(或其他文件写入对象)一次。在这种情况下,如果涉及的文件已经打开,该类中的构造函数将失败。FileOutputStream
用于写入原始字节流(如图像数据)。要编写字符流,请考虑使用FileWriter
.其常用方法与OutputStream相似
二,Reader和Writer,字符输入流和字符输出流
Reader读取字符流的抽象类。子类必须实现的唯一方法是read(char[]、int、int)和Close()。但是,大多数子类都会覆盖这里定义的一些方法,以便提供更高的效率、更多的功能,或者两者都提供。
Writer用于写入字符流的抽象类。子类必须实现的惟一方法是WILD(char[]、int、int)、刷新()和CLOSE()。但是,大多数子类都会覆盖这里定义的一些方法,以便提供更高的效率、更多的功能,或者两者都提供。
FilterReader
它本身提供了将所有请求传递给包含的流的默认方法。子类FilterReader
应该覆盖这些方法中的一些,还可以提供其他方法和字段。方法与Reader类似FilterWriter
它本身提供了将所有请求传递给包含的流的默认方法。子类FilterWriter
应该覆盖这些方法中的一些,还可以提供其他方法和字段。常用方法write(int c)只写一个字符 write(String c)写入一个字符串 write(char c[])写入一个字符数组 close()关上小溪,先冲过去flush()冲过小溪charset
..它使用的字符集可以按名称指定,也可以显式指定,也可以接受平台的默认字符集。每次调用InputStreamReader的read()方法之一,都可能导致从底层字节输入流读取一个或多个字节。为了有效地将字节转换为字符,可以从底层流中提前读取更多的字节,而不是满足当前读取操作所必需的字节。为了提高效率,请考虑在BufferedReader中包装InputStreamReader。例如: BufferedReader in = new BufferedReader(new InputStreamReader(System.in));charset
..它使用的字符集可以按名称指定,也可以显式指定,也可以接受平台的默认字符集。每次调用写()方法都会导致在给定字符上调用编码转换器。在写入基础输出流之前,将得到的字节累加在缓冲区中。可以指定此缓冲区的大小,但在默认情况下,它足以满足大多数目的。注意,传递给write()方法的字符没有缓冲。为了提高效率,请考虑将OutputStreamWriter封装在BufferedWriter中,以避免频繁的转换器调用。例如: Writer out = new BufferedWriter(new OutputStreamWriter(System.out));阅读字符文件的方便类。该类的构造函数假定默认字符编码和默认字节缓冲区大小是合适的。要自己指定这些值,请在FileInputStream上构造一个InputStreamReader。FileReader
用于读取字符流。要读取原始字节流,请考虑使用FileInputStream
.字符与字节是可以转换的
java目录
File类中有两个方法可以用来创建文件夹:
读取目录
一个目录其实就是一个 File 对象,它包含其他文件和文件夹。
如果创建一个 File 对象并且它是一个目录,那么调用 isDirectory() 方法会返回 true。
可以通过调用该对象上的 list() 方法,来提取它包含的文件和文件夹的列表。
删除目录或文件
删除文件可以使用 java.io.File.delete() 方法。
以下代码会删除目录 /tmp/java/,需要注意的是当删除某一目录时,必须保证该目录下没有其他文件才能正确删除,否则将删除失败。
原文:https://www.cnblogs.com/19990911-ZXX/p/11665946.html