一、Java.io包中的流 支持多种格式:基本类型、对象、本地化字符集
二、读取控制台输入
Java的控制台输入由system.in完成
把system.in包装在一个BufferedReader对象中来创建一个字符流
创建BufferedReader的基本语法:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedReader对象创建后 就可以使用read()方法从控制台读取一个字符 或者用readLine方法读取一个字符串
三、从BufferedReader对象读取字符用read()方法 语法:
int read( ) throws IOException
public class BRRead {
public static void main(String args[]) throws IOException {
char c;
// 使用 System.in 创建 BufferedReader
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("输入字符, 按下 'q' 键退出。");
// 读取字符
do {
c = (char) br.read();
System.out.println(c);
} while (c != 'q');
}
}
四、控制台输出
控制台输出由print()和println()完成 这些方法由类PrintStream定义
System.out是该类对象的一个引用
PrintStream继承了OutputStream类 并且实现了方法write()
基本语法:void write(int byteval)
write方法不经常用 因为print和println用起来更加方便
//演示 System.out.write().
public class WriteDemo {
public static void main(String args[]) {
int b;
b = 'A';
System.out.write(b);
System.out.write('\n');
}
}
五、IO流:
分为字符流和字节流
FileInputStream流 用于从文件读取数据 对象可以用new来创建
方式一:使用字符串类型文件名创建一个输入流对象来读取文件
InputStream f = new FileInputStream("C:/java/hello");
方式二:使用文件对象创建一个输入流对象读取文件,先用file()方法创建文件对象
File f = new File("C:/java/hello"); InputStream out = new FileInputStream(f);
FileOutputStream 这个类用来创建文件并向文件中写数据
有俩个构造方法可以用来创建FileOutputStream对象
方式一:使用字符串类型文件名创建一个输出流对象
OutputStream f = new FileOutputStream("C:/java/hello")
方式二:使用文件对象创建一个输出流来写文件,先用file()方法创建文件对象
File f = new File("C:/java/hello"); OutputStream f = new FileOutputStream(f);
写入流方法:
close finalize write等等
六、文件和I/O的类:file class(类) fileReader class(类) fileWriter class(类)
七、Java中的目录 file类有俩个方法可创建文件夹
mkdir() 和mkdirs() 创建一个文件夹和它的所有父文件夹
在特定目录下面创建一个文件夹:
public class CreateDir {
public static void main(String args[]) {
String dirname = "/tmp/user/java/bin";
File d = new File(dirname);
// 现在创建目录
d.mkdirs();
}
}
八、读取目录
public class DirList {
public static void main(String args[]) {
String dirname = "/tmp";
File f1 = new File(dirname);
if (f1.isDirectory()) {
System.out.println("目录 " + dirname);
String s[] = f1.list();
for (int i = 0; i < s.length; i++) {
File f = new File(dirname + "/" + s[i]);
if (f.isDirectory()) {
System.out.println(s[i] + " 是一个目录");
} else {
System.out.println(s[i] + " 是一个文件");
}
}
} else {
System.out.println(dirname + " 不是一个目录");
}
}
}
运行结果:
目录 /tmp
.keystone_install_lock 是一个文件
com.apple.launchd.H3GTyDTgZ5 是一个目录
com.apple.launchd.zgbsYuhXAh 是一个目录
mysql.sock 是一个文件
mysql.sock.lock 是一个文件
user 是一个目录
九、删除目录或文件
public class DeleteFileDemo {
public static void main(String args[]) {
// 这里修改为自己的测试目录
File folder = new File("/tmp/java/");
deleteFolder(folder);
}
// 删除文件及目录
public static void deleteFolder(File folder) {
File[] files = folder.listFiles();
if (files != null) {
for (File f : files) {
if (f.isDirectory()) {
deleteFolder(f);
} else {
f.delete();
}
}
}
folder.delete();
}
}