字符文件流
java.io 包几乎包含了所有操作输入、输出需要的类。
读取控制台输入
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
从控制台读取多字符输入
从BufferedReader对象读取一个字符要使用 read() 方法。
int read() throws IOException
每次调用 read 方法,它从输入流读取一个字符并作为 整型返回,结束时返回-1.
从控制台读取字符串
使用BufferedReader的 readLine() 方法
String readLine() throws IOException
输入我们可以考虑 java.Scanner类
控制台输出
能够使用print
和println
即可
读写文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-txmdJ2jl-1612433221443)(io.png)]
主要学习 FileInputStream 和 FileOutputStream
FileInputStream
用于从文件读取数据
初始化
InputStream f = new FileInputStream("C:/java/hello");
File f= new File("C:/java/hello");
FileInputStream fip = new FileInputStream(f);
InputStreamReader reader = new InputStreamReader(fip, "UTF-8"); // 解决乱码问题
操作方法
方法 | 描述 |
---|---|
void close() | 关闭此文件输入流并释放相关系统资源 |
int read(int r) | 从 InputStream 对象读取指定字节的数据,返回为整数值,返回下一字节的数据,如果是结尾返回-1 |
void finalize() | 清除与该文件的连接,确保在不再引用文件输入流时调用 close方法,会抛出 IOException异常 |
int available() | 返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取的字节数,返回一个整数值 |
每一个方法可能抛出 IOException异常,要注意捕获。
FileOutputStream
用于创建一个文件并向文件中写数据。如果不存在文件则会创建文件。
初始化
OutputStream f = new FileOutputStream("C:/java/hello");
File f= new File("C:/java/hello");
OutputStream out = new FileOutputStream(f);
操作方法
方法 | 描述 |
---|---|
void close() | 关闭此文件输入流,并释放与此流有关的系统资源 |
void write(int w) | 把指定字节写到输出流中。 |
void finalize() | 此方法清除与该文件的连接,确保在不在引用文件输入流时调用其 close 方法,抛出 IOException异常 |
close方法和 finalize 方法会抛出 IOException异常,注意捕获。
文件目录
创建目录
-
mkdir() 方法创建一个文件夹,成功返回true,失败返回false。
-
mkdirs() 方法创建一个文件夹和它所有的父文件夹。
String str = "/tmp/user/bin"; File f = new File(str); f.mkdirs();
读取目录
一个目录其实就是一个 File 对象,它包含其他文件和文件夹。
如果创建一个 File对象并且它是一个目录,name调用 isDirectory 方法会返回true
可以通过调用该对象的 list() 方法,来提取它包含的文件和文件夹列表。
File f = new File("/tmp");
// 判断是否是一个目录
f.isDirectory();
// 获取该路径下的所有文件夹和文件列表
String s[] = f1.list();
删除目录或文件
删除文件可以使用java.io.File.delete()
方法。
File f = new File("/tmp/java");
f.delete();
文件
删除文件可以使用java.io.File.delete()
方法。
File f = new File("/tmp/java");
f.delete();
需要注意的是,如果一个文件夹内存在文件,那就不能直接删除文件夹,要先删除文件,然后删除文件夹。