1.声明一个文件对象,separator代表"\",会因操作系统的不同而不同,比如Linux下是"/"
File f = new File("d:"+File.separator+"test.txt");
2.创建文件
f.createNewFile();
3.删除文件
f.delete();
4.判断文件是否存在
f.exists()
3.创建文件夹,一次只能创建一个文件夹
File f = new File("G:"+File.separator+"hello"); //实例化File类
f.mkdir(); //创建文件夹
4.列出指定目录下的所有文件
File f = new File("d:"+File.separator); //给出路径
String str[] = f.list(); //列出全部名称,返回字符串数组
for(int i=0;i<str.length;i++){
System.out.println(str[i]);
}
5.列出指定目录下所有文件的完整路径
File f = new File("d:"+File.separator); //设置路径
File files[] = f.listFiles(); //列出全部File
for(int i=0;i<files.length;i++){
System.out.println(files[i]);
}
6.判断路径是否是目录
f.isDirectory();
7.获得路径
f.getPath();
7.查找某路径下的所有文件
public static void print(File file){
if(file !=null){
File files[] = file.listFiles(); //获得File对象数组
for(int i=0;i<files.length;i++){
if(files[i].isDirectory()){ //判断是否是路径
print(files[i]); //如果是则继续递归
}else{
System.out.println(files[i].getName()); //如果不是则打印文件名称
}
}
}
}
8.RandomAccessFile任意位置读取和写入
实例化RandomAccessFile对象
File f = new File("d:"+File.separator+"test.txt");
RandomAccessFile raf = new RandomAccessFile(f,"rw"); //r代表可写操作,//w代表可读操作
写入
raf.writeBytes("hello"); //写入字节流
raf.writeInt(12); //写入整数
关闭写入
raf.close();
读取
byte b[] = new byte[10];
for(int i=0;i<b.length;i++){
b[i] = raf.readByte(); //一次只能读取一个字节
}
raf.readInt(); //读取数字
字节跳过
raf.skipBytes(12); //跳过12个字节
指针归位
raf.seek(0);
关闭读取
raf.close();
9.字节流的输出和输入
9.1字节输出流,写入操作
文件内容重写
File f = new File("d:"+File.separator+"test.txt"); //实例化File对象
OutputStream out = new FileOutputStream(f); //用OutputStream抽象类实例化输出对象
String str = "Hello World!"; //准备数据
byte b[] = str.getBytes(); //只能输出byte数组,所以将字符串变为byte数组
out.write(b); //将内容关闭,保存文件
out.close(); //关闭输出流
文件内容追加
File f = new File("d:"+File.separator+"test.txt");
OutputStream out = new FileOutputStream(f,true); //appeand设置为True,表示追加
String str = "Hello Word!!!";
byte b[] = str.getBytes();
for(int i=0;i<b.length;i++){
out.write(b[i]);
}
out.write(b);
out.close();
9.3字节输入流InputStream
实例化字节输入流对象
File f = new File("d:"+File.separator+"test.txt");
InputStream input = new FileInputStream(f);
得到文件大小
(int)f.length();
int len = input.read(new byte[1024]);
根据文件大小打印
System.out.println("内容:"+new String(b,0,len));
一个字节一个字节的读取
byte b[] = new byte[1024];
int len = 0;
int temp = 0;
while((temp = input.read())!=-1){ //如果文件不是-1则未读完
b[len] = (byte)temp;
len++;
}
10.字符流的输出流Writer,输入流Reader
Writer