File类
Posted Ivyvivid
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了File类相关的知识,希望对你有一定的参考价值。
1 运用File类进行文件操作 2 file.getPath() 相对路径 3 file.getAbsolutePath() 绝对路径 4 路径:/ \ 5 方法: 6 创建文件 7 exists() 8 createNewFile() 9 10 删除文件 11 exists() 12 delete() 13 14 获取文件相关信息 15 isFile() 16 isDirectory() 17 getName() 18 getPath() 19 getAbsolutePath() 20 length() 21 范例1: 22 public class FileMethods { 23 //创建文件 24 public void creatFile(File file){ 25 if (!file.exists()) { 26 try { 27 file.createNewFile(); 28 System.out.println("文件创建成功"); 29 } catch (IOException e) { 30 e.printStackTrace(); 31 } 32 } 33 } 34 35 //查看文件信息 36 public void showFileInfo(File file){ 37 if (file.exists()) { 38 if (file.isFile()) { 39 System.out.println("文件名:" + file.getName()); 40 System.out.println("文件绝对路径:" + file.getAbsolutePath()); 41 System.out.println("文件相对路径:" + file.getPath()); 42 System.out.println("文件大小(字节):" + file.length()); 43 } 44 45 if (file.isDirectory()) { 46 System.out.println("这是一个目录"); 47 } 48 } 49 } 50 51 //删除文件 52 public void deleteFile(File file){ 53 if (file.exists()) { 54 file.delete(); 55 System.out.println("文件删除成功"); 56 } 57 } 58 59 //测试 60 public static void main(String[] args) { 61 //调用方法,创建方法的对象 62 FileMethods fm = new FileMethods(); 63 //创建文件对象 64 // File file = new File("e:" + File.separator + "Java实训课总结" + File.separator + "2016.3.26" + File.separator + "FileDemo.txt"); 65 File file = new File("FileDemo.txt"); 66 fm.creatFile(file); 67 fm.showFileInfo(file); 68 fm.deleteFile(file); 69 } 70 } 71 72 范例2: 73 public class FileMethod { 74 //判断文件夹是否存在 75 public String existFile(String pathName){ 76 File file = new File(pathName); 77 if (!file.exists()) { 78 return null; 79 } else { 80 return pathName; 81 } 82 } 83 84 //显示文件信息 85 public void showFileInfo(String pathName){ 86 File file = new File(pathName); 87 String str = existFile(pathName); 88 if (str != null) { 89 file.getAbsolutePath(); 90 System.out.println("文件名:" + file.getName()); 91 System.out.println("文件大小:" + file.length()); 92 System.out.println("文件绝对路径:" + file.getAbsolutePath()); 93 System.out.println("文件相对路径:" + file.getPath()); 94 // System.out.println("文件大小(单位:字节):" + new BigDecimal((double)file.length()/1024/1024).divide(new BigDecimal(1), 2, BigDecimal.ROUND_HALF_UP) + "M"); 95 } 96 } 97 98 //分割类 99 public long unitSize = 0;//每个小文件的大小 100 public String targetDir = null;//分割后小文件所在的文件夹 101 102 public int cutFile(String pathName) throws IOException{ 103 File file = new File(pathName); 104 String str = existFile(pathName); 105 long size = file.length();//总字节数 106 int count = 0;//小文件数 107 long pos = 0;//当前位置 108 long last = 0;//剩余字节数 109 DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream(pathName),(int)unitSize)); 110 byte[] data = new byte[(int)this.unitSize]; 111 while (pos < size) { 112 count++; 113 last = size - pos; 114 if (last < this.unitSize) { 115 data = new byte[(int)last]; 116 } 117 dis.read(data); 118 pos = pos + data.length; 119 //写小文件 120 try { 121 RandomAccessFile raFile = new RandomAccessFile(this.targetDir + "-" + count,"rw"); 122 System.out.println(this.targetDir + "-" + count); 123 raFile.write(data); 124 raFile.close(); 125 } catch (FileNotFoundException e) { 126 e.printStackTrace(); 127 } catch (IOException e) { 128 e.printStackTrace(); 129 } 130 } 131 //记载小文件数 132 File file2 = new File(this.targetDir + "_count"); 133 BufferedWriter bw = new BufferedWriter(new FileWriter(file2)); 134 String str2 = (new Integer(count)).toString(); 135 bw.write(str2, 0, str2.length()); 136 bw.flush(); 137 bw.close(); 138 return count; 139 } 140 141 public long getUnitSize() { 142 return unitSize; 143 } 144 145 public void setUnitSize(long unitSize) { 146 this.unitSize = unitSize; 147 } 148 149 public String getTargetDir() { 150 return targetDir; 151 } 152 153 public void setTargetDir(String targetDir) { 154 this.targetDir = targetDir; 155 } 156 } 157 158 //测试 159 public class SegmentationTxt { 160 public static void main(String[] args) { 161 Scanner input = new Scanner(System.in); 162 FileMethod fm = new FileMethod(); 163 //1.输入文件路径 164 System.out.println("请输入文件路径:"); 165 String pathName = input.next(); 166 File file = new File(pathName); 167 String str = fm.existFile(pathName); 168 while (str == null) { 169 System.out.println("文件不存在!"); 170 System.out.println("请输入文件路径:"); 171 pathName = input.next(); 172 str = fm.existFile(pathName); 173 } 174 System.out.println("======文件信息====="); 175 //2.打印文件信息 176 fm.showFileInfo(pathName); 177 //3.分割文件 178 System.out.println("请输入文件分割的大小(单位byte):"); 179 int dividNum = input.nextInt(); 180 System.out.println("开始分割......"); 181 try { 182 Thread.sleep(2000); 183 fm.setUnitSize(dividNum); 184 fm.setTargetDir(pathName); 185 fm.cutFile(pathName); 186 } catch (IOException e) { 187 e.printStackTrace(); 188 } catch (InterruptedException e) { 189 e.printStackTrace(); 190 } 191 } 192 }
以上是关于File类的主要内容,如果未能解决你的问题,请参考以下文章
php代码片段: sendFile/videoStream/sendEmail/phpexcel/ffmpeg/zip
[异常解决] Make nRF51 DFU Project Appear "fatal error: uECC.h: No such file or directory"(代码片段
如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用
解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘(代码片段