public class Test { public static void main(String[] args) { String directory="myfile/b"; String filename="a.txt"; //注释掉的为方法一 /*File file=new File(directory,filename); if (file.exists()) { System.out.println(file.getAbsolutePath()); System.out.println(file.getName()); }else { file.getParentFile().mkdirs(); try { file.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }*/ //此为方法二: File file=new File(directory); if (!file.exists()) { file.mkdirs(); } File file2=new File(directory,filename); if (!file2.exists()) { try { file2.createNewFile(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //向指定文件中写入文字 FileWriter fileWriter; try { fileWriter = new FileWriter("myfile/b/a.txt"); //使用缓冲区比不使用缓冲区效果更好,因为每趟磁盘操作都比内存操作要花费更多时间。 //通过BufferedWriter和FileWriter的连接,BufferedWriter可以暂存一堆数据,然后到满时再实际写入磁盘 //这样就可以减少对磁盘操作的次数。如果想要强制把缓冲区立即写入,只要调用writer.flush();这个方法就可以要求缓冲区马上把内容写下去 BufferedWriter bufferedWriter=new BufferedWriter(fileWriter); bufferedWriter.write("this is a.txt"); bufferedWriter.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }