IO包括输入流和输出流 这些类都被放在Java.io包中
所有的输入流都是抽象类InputStream(字节输入流) 或 抽象类Reader(字符输入流)的子类; 所以的输出流都是抽象类OutputStream(字节输出流) 或抽象类Writer(字符输出流)的子类。
1. 使用File类完成如下功能:如果不存在就创建此文件,如果存在就删除
import java.io.*;
public class Test2 {
public static void main(String[] args) {
File f = new File("d:\\test");
//判断文件是否存在
boolean flag = f.exists() ;
if (flag){
System.out.println("该文件已经存在");
f.delete();
}else {
System.out.println("该文件已被创建");
f.mkdir();
}
}
}
任意指定盘符的一个文件夹,使用File输出下面的文件夹及文件名称
public class Test3 {
public static void main(String[] args) {
File file = new File("d:\\test");
File[] files = file.listFiles();//显示file下的所有文件夹和文件名称
for (File file1:files
) {
System.out.println(file1.getName());//获取文件的姓名 getName()
}
}
}
read()方法:从输入流中读取数据的下一个字节。如果因为已经达到流的末尾而没有可用的字节,则返回值为-1;
public class Test5 {
public static void main(String[] args) throws FileNotFoundException{
try {
Reader reader = new FileReader(new File("d:\\file\\we.txt"));
BufferedReader bufferedReader = new BufferedReader(reader);
//2.目的地
Writer writer = new FileWriter(new File("d:\\file\\w3.txt"));
BufferedWriter bufferedWriter = new BufferedWriter(writer);
// char[] chars = new char[1024];
int i = 0;
// while ((i = reader.read(chars)) != -1) {
// writer.write(chars, 0, i);
// }
while ((i = bufferedReader.read())!=-1){
bufferedWriter.write(i);
}
bufferedReader.close();
bufferedWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public class Test4 {
public static void main(String[] args) throws FileNotFoundException {
try {
//要复制的文件
InputStream in = new FileInputStream("d:\\file\\we.txt");
//复制到目的地
OutputStream out = new FileOutputStream("d:\\we.txt");
//循环读取
byte[] bytes = new byte[1024];//定义字节数组缓冲区
int i = 0;
while (( i= in.read(bytes))!=-1){
//将缓存里面的内容写到目的的文件里
out.write(bytes, 0, i);//0,i 0(从缓存的第一个) i(读入的字节数)
}
//关闭流
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}