package hanqi.test; import java.io.File; import java.io.IOException; public class Test02 { public static void main(String[] args) { //目录操作 File dir =new File("d:/test/newdir"); //判断是否存在 if(dir.exists()) { System.out.println("目录存在"); } else { System.out.println("目录不存在"); //创建新目录 //只能一次创建最底层的目录 //要求上层目录必须存在 //dir.mkdirs(); //可以同时创建多层目录 dir.mkdirs(); System.out.println("创建目录成功"); } //目录和文件结合操作 // String dir1="d:/test01"; String filename="test01.txt"; //File file = new File(dir1,filename); //目录的对象 File d1=new File(dir1); //判断目录不存在 if(!d1.exists()) { //创建目录 d1.mkdirs(); } File file=new File(d1,filename); //创建文件 try{ file.createNewFile(); }catch(IOException e){ e.printStackTrace(); } } }
package hanqi.test; import java.io.File; import java.io.IOException; public class Test07 { public static void main(String[] args) { //io流,File类的测试 //实例化某个文件的file对象 File file = new File("d:/test.txt"); //判断目标是否存在 if (file.exists()) { System.out.println(file.getName()+"存在"); //删除 // file.delete(); // System.out.println(file.getName()+"已删除"); //改名 //本质:把原有文件以新的文件名和路径进行复制,然后删除源文件 file.renameTo(new File("d:/test2.txt")); //没有提供复制方法 System.out.println(file.getName()+"文件改名成功"); } else { System.out.println(file.getName()+"不存在"); //创建文件 try{ file.createNewFile(); System.out.println("创建"+file.getAbsolutePath()); } catch(IOException e){ e.printStackTrace(); } } } }
package hanqi.test; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; public class Test03 { public static void main(String[] args){ //字节流 //输出流 从内存流向文件 try { //构造方法确定目标文件 //如果文件不存在,自动创建该文件,但不自动创建目录 //如果目录不存在,会引发异常 //FileOutputStream out = new FileOutputStream("d:/text03.txt"); File file = new File("d:/test"); if(!file.exists()) { file.mkdirs(); } File file1 = new File("d:/test03.txt"); FileOutputStream out = new FileOutputStream(file1); //写入的内容 String nr="今天是星期一"; //把数据转成byte数组 byte[] b=nr.getBytes(); //写入数据到文件中 //byte[]内容数组 //思考题:把输出流的写入方式由覆盖改为追加 out.write(b); out.close(); //关闭流 ,释放资源 System.out.println("输出流写入文件成功"); //输入流 从文件吧数据读入内存 FileInputStream in =new FileInputStream("d:/test/test03.txt"); //装在数据的数组 byte[] b1= new byte[1024]; int i=0; String str=""; // 读取数据 //分段按顺序读取,每次最多读取数组长度大小的数据 //返回值表示每次读取的数据长度,如果数据读取完或读取失败,返回-1. while((i = in.read(b1))>0) { //组合数据 //参数 1 - 起始位置 str += new String(b1,0,i); } int j=in.read(b); System.out.println(j); System.out.println(str); in.close(); } catch (Exception e) { e.printStackTrace(); } } }
package hanqi.test; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; public class Test04 { public static void main(String[] args){ //追加 //1、先读取源文件内容 //输入流 //如果文件不存在,抛出异常 try { FileInputStream in = new FileInputStream("d:/test/test03.txt"); //byte[] byte[] b= new byte[1024]; //长度 int i = -1; //内容 StringBuilder str= new StringBuilder(); while((i=in.read(b))>0) { //组装数据 str.append(new String(b,0,i)); } System.out.println(str); //2、把新内容追加到后面 str.append(" 这是追加的内容"); //3、把新内容覆盖源文件 //输出流 FileOutputStream out = new FileOutputStream("d:/test/test03.txt"); //写入数据 out.write(str.toString().getBytes()); //释放资源 out.close(); System.out.println("追加完成"); } catch (Exception e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } }
package hanqi.test; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class Test05 { public static void main(String[] args) throws IOException { // TODO 自动生成的方法存根 FileOutputStream out = new FileOutputStream("d:/test/test03.txt",true); String str =" 新的构造方法"; //写入数据 out.write(str.toString().getBytes()); //释放资源 out.close(); System.out.println("追加完成"); FileInputStream in = new FileInputStream("d:/test/test03.txt"); //byte[] byte[] b= new byte[1024]; //长度 int i = -1; //内容 StringBuilder str1= new StringBuilder(); while((i=in.read(b))>0) { //组装数据 str1.append(new String(b,0,i)); } System.out.println(str1); } }