• Java 在指定目录建立指定文件名的文件 并输入内容



    1
    package runoob; 2 import java.io.File; 3 import java.io.FileInputStream; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 import java.io.InputStreamReader; 7 import java.io.OutputStreamWriter; 8 9 public class FileDemo { 10 11 public static void main(String[] args) throws IOException { 12 // TODO Auto-generated method stub 13 String separator=File.separator; 14 String dir="temp01"+separator+"temp02"; 15 String fileName="hello.txt"; 16 File file=new File(dir, fileName); 17 if(file.exists()){ 18 System.out.println(file.getAbsolutePath()); 19 System.out.println(file.getName()); 20 System.out.println(file.length()); 21 }else{ 22 file.getParentFile().mkdirs(); 23 try { 24 file.createNewFile(); 25 } catch (IOException e) { 26 // TODO: handle exception 27 e.printStackTrace(); 28 } 29 } 30 31 /*String dirname="c:/mysql"; 32 File file=new File(dirname); 33 if(file.isDirectory()){ 34 System.out.println("Directory of "+dirname); 35 String[] strings=file.list(); 36 for(int i=0;i<strings.length;i++){ 37 File f=new File(dirname+"/"+strings[i]); 38 if(f.isDirectory()){ 39 System.out.println(strings[i]+" is a directory"); 40 }else{ 41 System.out.println(strings[i]+" is a file"); 42 } 43 } 44 }else{ 45 System.out.println(dirname+" is not a directory!"); 46 }*/ 47 48 /*System.out.println("file是一个文件:"+file.isFile()); 49 System.out.println("file是一个目录:"+file.isDirectory()); 50 System.out.println("file的文件名:"+file.getName()); 51 File parentFile=file.getParentFile(); 52 System.out.println("parentFile是一个目录:"+parentFile.isDirectory()); 53 System.out.println("parentFile是一个文件:"+parentFile.isFile()); 54 55 */ 56 /*if(file.isDirectory()){ 57 System.out.println("File是一个目录!"); 58 if(file.exists()){ 59 System.out.println("文件夹已存在!"); 60 }else{ 61 System.out.println("文件夹不存在"); 62 file.mkdirs(); 63 if(file.exists()) 64 System.out.println("文件夹已创建!"); 65 } 66 } 67 68 if(file.isFile()){ 69 System.out.println("File是一个文件!"); 70 if(file.exists()){ 71 System.out.println("文件已存在!"); 72 }else { 73 System.out.println("文件不存在"); 74 File file2=new File(file.getParent()); 75 if(file2.exists()){ 76 System.out.println("该文件的目录已存在!"); 77 file.createNewFile(); 78 System.out.println("文件已创建!"); 79 }else { 80 file2.mkdirs(); 81 System.out.println("文件目录已建立!"); 82 file.createNewFile(); 83 System.out.println("文件已建立!"); 84 } 85 } 86 }*/ 87 88 /*if(file.exists()){ 89 System.out.println("文件夹存在!"); 90 if(file.isDirectory()){ 91 System.out.println("文件存在!"); 92 }else{ 93 file.createNewFile(); 94 System.out.println("文件不存在,已创建文件!"); 95 } 96 }else{ 97 System.out.println("文件夹不存在!"); 98 File file2=new File(file.getParent());//获取指定文件的上层目录,用来创建文件夹~ 99 System.out.println("file2是一个目录:"+file2.isDirectory()+" file2是一个文件:"+file2.isFile()); 100 file2.mkdirs(); 101 file.createNewFile();//文件夹不存在,对应文件肯定也不存在咯,所以要新建! 102 }*/ 103 104 //这里插入一句,mkdirs()和mkdir()的区别在于,前者可以建立多级文件夹,后者只会建立一级文件夹。比如: 105 //new File("c:/temp/user/hehe").mkdirs()会建立三级目录,直到hehe。 106 //new File("c:/temp/user/hehe").mkdir()只会建立一级目录,hehe,如果前面两级目录不存在,则返回false! 107 // 108 109 FileOutputStream fOutputStream=new FileOutputStream(file); 110 OutputStreamWriter writer=new OutputStreamWriter(fOutputStream, "utf-8"); 111 writer.append("中文输入+English"); 112 writer.append(" "); 113 writer.append("English"); 114 writer.close(); 115 fOutputStream.close(); 116 117 FileInputStream fInputStream=new FileInputStream(file); 118 InputStreamReader reader=new InputStreamReader(fInputStream,"UTF-8"); 119 StringBuilder sBuilder=new StringBuilder(); 120 while(reader.ready()){ 121 sBuilder.append((char)reader.read()); 122 } 123 System.out.println(sBuilder.toString()); 124 reader.close(); 125 fInputStream.close(); 126 127 } 128 129 }

    经过学习,我发现:

    File file=new File(fileName);

    如果fileName是一个文件名,比如c:/temp/hello.txt,那么这个File对象既不是一个file也不是directory,不晓得怎么回事。File对象貌似只是一个目录,可以包含文件和文件夹。

    而使用new File(dir, fileName)构造方法建立的File对象则是一个file,文件。不是一个目录。

    如果您觉得感兴趣的话,可以添加我的微信公众号:一步一步学Python
    ![](http://images2017.cnblogs.com/blog/993869/201711/993869-20171118215516327-881787609.jpg)

  • 相关阅读:
    树莓派笔记——了解与购买树莓派(1)
    SQLserver 备份和还原 失败
    lua coroutine
    lua for循环
    leetcode 46. 全排列
    sprintf、vsprintf、sprintf_s、vsprintf_s、_snprintf、_vsnprintf、snprintf、vsnprintf 函数辨析
    rapidxml的常见读写操作
    C++11 可变参数模板构造string列表
    Fedora 28 设置yum代理
    Linux命令计算文件中某一列的平均值
  • 原文地址:https://www.cnblogs.com/xingzhui/p/5782198.html
Copyright © 2020-2023  润新知