Java Stream,File,IO
Java.io 包几乎包含了所有操作输入、输出需要的类。所有这些流类代表了输入源和输出目标。
Java.io 包中的流支持很多种格式,比如:基本类型、对象、本地化字符集等等。
一个流可以理解为一个数据的序列。输入流表示从一个源读取数据,输出流表示向一个目标写数据。
Java 为 I/O 提供了强大的而灵活的支持,使其更广泛地应用到文件传输和网络编程中。
从控制台读取输入
读取字符
- 使用BufferedReader 类的read()方法
import java.io.*
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
char c = (char)br.read();
读取字符串
- 使用BufferedReader 类的readLine()方法
import java.io.*
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
控制台输出
void write(int byteval);
System.out.write('\n');
IO流与文件操作
- 其中最重要的两个流是 FileInputStream,FileOutputStream
FileInputStream
- 使用字符串类型的文件名来创建一个输入流对象
- 也可以使用一个文件对象来创建一个输出流来写文件。我们首先得使用File()方法来创建一个文件对象
InputStream f = new FileInputStream("java/hello");
File f = new File("java/hello");
InputStream out = new FileInputStream(f);
方法 | 描述 |
---|
public void close()throws IOException{} | 关闭此文件输入流并释放与此流有关的所有系统资源。抛出IOException异常。 |
protected void finalize()throws IOException {} | 这个方法清除与该文件的连接。确保在不再引用文件输入流时调用其 close 方法。抛出IOException异常。 |
public int read(int r)throws IOException{} | 这个方法从 InputStream 对象读取指定字节的数据。返回为整数值。返回下一字节数据,如果已经到结尾则返回-1。 |
public int read(byte[] r) throws IOException{} | 这个方法从输入流读取r.length长度的字节。返回读取的字节数。如果是文件结尾则返回-1。 |
public int available() throws IOException{} | 返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取的字节数。返回一个整数值。 |
FileOutputStream
- 使用字符串类型的文件名来创建一个输出流对象
- 也可以使用一个文件对象来创建一个输出流来写文件。我们首先得使用File()方法来创建一个文件对象
OutputStream f = new FileOutputStream("java/hello");
File f = new File("java/hello");
OutputStream f = new FileOutputStream(f);
方法 | 描述 |
---|
public void close() throws IOException{} | 关闭此文件输入流并释放与此流有关的所有系统资源。抛出IOException异常。 |
protected void finalize()throws IOException {} | 这个方法清除与该文件的连接。确保在不再引用文件输入流时调用其 close 方法。抛出IOException异常。 |
public void write(int w)throws IOException{} | 这个方法把指定的字节写到输出流中。 |
public void write(byte[] w) | 把指定数组中w.length长度的字节写到OutputStream中。 |
FIle类
序号 | 方法 | 描述 |
---|
1 | public String getName() | 返回由此抽象路径名表示的文件或目录的名称。 |
2 | public String getParent() | 返回此抽象路径名的父路径名的路径名字符串,如果此路径名没有指定父目录,则返回 null。 |
3 | public File getParentFile() | 返回此抽象路径名的父路径名的抽象路径名,如果此路径名没有指定父目录,则返回 null。 |
4 | public String getPath() | 将此抽象路径名转换为一个路径名字符串。 |
5 | public boolean isAbsolute() | 测试此抽象路径名是否为绝对路径名。 |
6 | public String getAbsolutePath() | 返回抽象路径名的绝对路径名字符串。 |
7 | public boolean canRead() | 测试应用程序是否可以读取此抽象路径名表示的文件。 |
8 | public boolean canWrite() | 测试应用程序是否可以修改此抽象路径名表示的文件。 |
9 | public boolean exists() | 测试此抽象路径名表示的文件或目录是否存在。 |
10 | public boolean isDirectory() | 测试此抽象路径名表示的文件是否是一个目录。 |
11 | public boolean isFile() | 测试此抽象路径名表示的文件是否是一个标准文件。 |
12 | public long lastModified() | 返回此抽象路径名表示的文件最后一次被修改的时间。 |
13 | public long length() | 返回由此抽象路径名表示的文件的长度。 |
14 | public boolean createNewFile() throws IOException | 当且仅当不存在具有此抽象路径名指定的名称的文件时,原子地创建由此抽象路径名指定的一个新的空文件。 |
15 | public boolean delete() | 删除此抽象路径名表示的文件或目录。 |
16 | public void deleteOnExit() | 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录。 |
17 | public String[] list() | 返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。 |
18 | public String[] list(FilenameFilter filter) | 返回由包含在目录中的文件和目录的名称所组成的字符串数组,这一目录是通过满足指定过滤器的抽象路径名来表示的。 |
19 | public File[] listFiles() | 返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。 |
20 | public File[] listFiles(FileFilter filter) | 返回表示此抽象路径名所表示目录中的文件和目录的抽象路径名数组,这些路径名满足特定过滤器。 |
21 | public boolean mkdir() | 创建此抽象路径名指定的目录。 |
22 | public boolean mkdirs() | 创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。 |
23 | public boolean renameTo(File dest) | 重新命名此抽象路径名表示的文件。 |
24 | public boolean setLastModified(long time) | 设置由此抽象路径名所指定的文件或目录的最后一次修改时间。 |
25 | public boolean setReadOnly() | 标记此抽象路径名指定的文件或目录,以便只可对其进行读操作。 |
26 | public static File createTempFile(String prefix, String suffix, File directory) throws IOException | 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。 |
27 | public static File createTempFile(String prefix, String suffix) throws IOException | 在默认临时文件目录中创建一个空文件,使用给定前缀和后缀生成其名称。 |
28 | public int compareTo(File pathname) | 按字母顺序比较两个抽象路径名。 |
29 | public int compareTo(Object o) | 按字母顺序比较抽象路径名与给定对象。 |
30 | public boolean equals(Object obj) | 测试此抽象路径名与给定对象是否相等。 |
31 | public String toString() | 返回此抽象路径名的路径名字符串。 |
FileReader类
创建方法
FileReader(File file)
FileReader(FileDescriptor fd)
FileReader(String fileName)
方法 | 描述 |
---|
public int read() throws IOException | 读取单个字符,返回一个int型变量代表读取到的字符 |
public int read(char [] c, int offset, int len) | 读取字符到c数组,返回读取到字符的个数 |
FileWriter类
FileWriter(File file)
FileWriter(File file,boolean append)
FileWriter(FileDescriptor fd)
FileWriter(String fileName, boolean append)
- 关于append参数,为true时,将字节写入文件末尾处,相当于追加信息;否则写入在文件开始处。
方法 | 描述 |
---|
public void write(int c) throws IOException | 写入单个字符c。 |
public void write(char [] c, int offset, int len) | 写入字符数组中开始为offset长度为len的某一部分。 |
public void write(String s, int offset, int len) | 写入字符串中开始为offset长度为len的某一部分。 |