JAVA练手--文件操作
1. File类
主要作用:用于文件和文件夹的创建、查找、删除等操作
public static void main(String[] args) throws IOException { File f = new File("haha/bin"); //1. 创建文件夹 { if(f.exists()){ System.out.println("1: "+"目录存在"); }else{ System.out.println("1: "+"目录不存在"); } f.mkdirs(); if(f.exists()){ System.out.println("1: "+"目录存在"); }else{ System.out.println("1: "+"目录不存在"); } } //2. 查找文件夹中的文件和文件夹 { if(f.isDirectory()){ System.out.println("2: "+"是目录"); }else{ System.out.println("2: "+"是文件"); } //将这个目录下的所有文件和文件夹全部单独放在在字符串中 String[] list = f.list(); for(String b : list){ System.out.println("2: 文件名:"+b); File fs = new File("haha/bin/"+b); if(fs.isFile()){ System.out.println("2: 属性:"+"文件"); }else{ System.out.println("2: 属性:"+"目录"); } } } //3. 删除文件和文件夹 { //拿到所有文件的对象 File[] ff = f.listFiles(); for(File tf : ff){ //如果是文件夹则暂时不管 if(tf.isDirectory()){ }else{ tf.delete(); } } } }
结果:
1: 目录存在 1: 目录存在 2: 是目录 2: 文件名:s 2: 属性:目录
2. 字节流
public static void main(String[] args) throws IOException { String StrA = "hello world"; File f = new File("f.txt"); if(f.exists()){ System.out.println("文件存在"); }else{ System.out.println("文件不存在"); } //创建字节流输出流对象,如果没有文件则创建文件 //方法1: //FileOutputStream fos = new FileOutputStream("f.txt"); //方法2: FileOutputStream fos = new FileOutputStream(f); byte[] b = StrA.getBytes(); for(byte bb : b) fos.write(bb); //创建字节流输入对象 FileInputStream fis = new FileInputStream("f.txt"); //一次可以读取出来的数量 int i = fis.available(); int c; byte[] br = new byte[i]; for(c = 0; c<i; c++) br[c++] = fis.read(); System.out.println("得到的文件:"+br.toString()); }
文件存在
得到的文件:[B@6d06d69c
3. 字符流
package tet; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.util.Arrays; public class kk { public static void main(String[] args) throws IOException { File f = new File("f.txt"); //字节流 FileOutputStream fos = new FileOutputStream (f); //字符流 OutputStreamWriter osw= new OutputStreamWriter(fos,"UTF-8"); //写入缓冲 osw.append("hello"); //注意是从打开文件,从0开始追加,不是从末地址开始追加 osw.append("world"); //关闭字符流 osw.close(); //关闭字节流 fos.close(); if(f.exists()) { System.out.println("文件存在"); }else{ System.out.println("文件不存在"); } //字节流 FileInputStream fis = new FileInputStream(f); //字符流 InputStreamReader isr= new InputStreamReader(fis,"UTF-8"); //因为这个字符串会不断变化,String一旦确认,就不能再变化了 StringBuffer bs = new StringBuffer(); while(isr.ready()){ bs.append((char)isr.read()); } System.out.println(bs.toString()); //关闭字符流 isr.close(); //关闭字节流 fis.close(); } }
结果:
文件存在
helloworld