File类常用方法
/*File类文件操作练习 创建File对象*/
File file=new File("C:\\Users\\xvwan\\Desktop\\杂项\\自学练手\\level_1\\src\\main\\java\\my\\learning\\level_1\\day4"); //绝对路径
File file1 = new File("src\\main\\java\\my\\learning\\level_1\\day4"); //相对路径,以项目根目录开始
System.out.println(file);
/*获取文件名*/
String name = file.getName();
System.out.println(name);
/*获取文件绝对路径*/
String absolutePath = file1.getAbsolutePath();
System.out.println(absolutePath);
/*length*/
long length = file1.length(); //文件夹大小为0
System.out.println(length);
/*isFile()此File表示的是否为文件*/
boolean isFile = file1.isFile();
System.out.println(isFile);
/* isDirectory() :此File表示的是否为目录*/
boolean isDirectory = file1.isDirectory();
System.out.println(isDirectory);
用File类遍历文件小例子
*遍历文件*/
public class Research {
public static void main(String[] args) {
research("src\\main\\java\\my\\learning\\level_1\\day4");
}
private static void research(String filePath) {
File file=new File(filePath);
File[] files = file.listFiles();
for (File file1 : files) {
if (file1.isDirectory()){
System.out.println(file1.getName());
research(file1.toString());
}else {
System.out.println(file1.getName());
}
}
}
}
IO流,FileOutputStream和FileInputStream
/*文件输出流写文件, 文件不存在会自动创建*/
FileOutputStream fos = new FileOutputStream("src\\main\\java\\my\\learning\\level_1\\day4\\File\\test.txt");
fos.write("你好,hello word! \r\n我换行了".getBytes());
fos.close();
/*文件输入流读文件*/
FileInputStream fis = new FileInputStream("src\\main\\java\\my\\learning\\level_1\\day4\\File\\test.txt");
int read=0;
byte[] buf=new byte[1024];
StringBuilder sb=new StringBuilder();
while( (read = fis.read(buf)) !=-1){
// System.out.println(new String(buf,0,read));
sb.append(new String(buf,0,read));
}
fis.close();
System.out.println(sb.toString());
/*使用BufferedInputStream提高效率*/
BufferedInputStream bis=new BufferedInputStream(new FileInputStream("src\\main\\java\\my\\learning\\level_1\\day4\\File\\test.txt"));
while( (read=bis.read(buf)) !=-1 ){
System.out.println(new String(buf));
}
bis.close();
BufferedReader br=new BufferedReader(new FileReader("src\\main\\java\\my\\learning\\level_1\\day4\\File\\test.txt"));
String line=null;
while( (line=br.readLine()) !=null ){
System.out.println(line);
}
文件IO流小练习,复制文件
public static void main(String[] args) {
String readPath="src\\main\\java\\my\\learning\\level_1\\day4\\File\\test.txt";
String writePath="src\\main\\java\\my\\learning\\level_1\\day4\\File\\test_copy.txt";
try {
cpoy(readPath,writePath);
} catch (IOException e) {
e.printStackTrace();
}
}
private static void cpoy(String readPath,String writePath) throws IOException {
/*读出文件信息,存入StringBuilder*/
FileInputStream fis = new FileInputStream(readPath);
byte[] buf = new byte[1024];
int read = 0;
StringBuilder sb = new StringBuilder();
while ((read = fis.read(buf)) != -1) {
sb.append(new String(buf, 0, read));
}
fis.close();
/*将StringBuilder里的消息装换成byte[]存入目的文件*/
FileOutputStream fos=new FileOutputStream(writePath);
fos.write(sb.toString().getBytes());
fos.close();
}