1. package javax.org.path;
  2. import java.math.BigDecimal;
  3. /**
  4. * @Author:jilongliang
  5. * @Date :2013-6-18
  6. * @Project:JTool
  7. * @Class:AccessFile.java
  8. * @Description:文件处理类
  9. */
  10. public class AccessFile {
  11. public static final long KB = 1024;//KB
  12. public static final long MB = KB * KB;//MB
  13. public static final long GB = KB * MB;//GB
  14. /**
  15. * 处理文件大小
  16. */
  17. public static String fileSize(long file) {
  18. if (file <= 0) {
  19. return "";
  20. } else if (file < MB) {
  21. BigDecimal b = new BigDecimal((double) file / KB);
  22. return b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() + "K";
  23. } else if (file < GB) {
  24. BigDecimal b = new BigDecimal((double) file / MB);
  25. return b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() + "M";
  26. } else {
  27. BigDecimal b = new BigDecimal((double) file / GB);
  28. return b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() + "G";
  29. }
  30. }
  31. /**获取当前工程路径
  32. * @return
  33. */
  34. public static String getSysPath() {
  35. //String path = Thread.currentThread().getContextClassLoader().getResource("").toString();
  36. String path = Thread.currentThread().getContextClassLoader().getResource(".").toString();
  37. String temp = path.replaceFirst("file:/", "").replaceFirst("WEB-INF/classes/", "");
  38. String separator = System.getProperty("file.separator");
  39. String resultPath = temp.replaceAll("/", separator + separator);
  40. return resultPath;
  41. }
  42. /**
  43. * Thread.currentThread().getContextClassLoader().getResource("")
  44. * 的getResource里面空串或者点或者是/输出的路径是一致
  45. * "" D:\Eclipse3.7\JTool\build\classes\
  46. * .  D:\Eclipse3.7\JTool\build\classes\
  47. * -/ D:\Eclipse3.7\JTool\build\classes\
  48. * @return
  49. */
  50. public static String getClassPath() {
  51. //String path = Thread.currentThread().getContextClassLoader().getResource("").toString();
  52. //String path = Thread.currentThread().getContextClassLoader().getResource(".").toString();
  53. String path = Thread.currentThread().getContextClassLoader().getResource("/").toString();
  54. String temp = path.replaceFirst("file:/", "");
  55. String separator = System.getProperty("file.separator");
  56. String resultPath = temp.replaceAll("/", separator + separator);
  57. return resultPath;
  58. }
  59. /**
  60. * getClassLoader().getResource()方法参数空串和点都是输出相同的路径唯有/是报空指针
  61. * "" D:\Eclipse3.7\JTool\build\classes\
  62. * .  D:\Eclipse3.7\JTool\build\classes\
  63. *-/  报空指针
  64. * @return
  65. */
  66. private  String getClassesAbsolutePath(){
  67. // 得到的是 项目的绝对路径
  68. String path=this.getClass().getClassLoader().getResource("").getPath();
  69. //String path=this.getClass().getClassLoader().getResource(".").getPath();
  70. //String path=this.getClass().getClassLoader().getResource("/").getPath();//报空指针
  71. String temp = path.replaceFirst("/", "");
  72. String separator = System.getProperty("file.separator");
  73. String resultPath = temp.replaceAll("/", separator + separator);
  74. return resultPath;
  75. }
  76. /**
  77. *得到的是当前类 文件的URI目录,不包括自己
  78. * ""D:\Eclipse3.7\JTool\build\classes\javax\org\path\
  79. * . D:\Eclipse3.7\JTool\build\classes\javax\org\path\
  80. - / D:\Eclipse3.7\JTool\build\classes\
  81. * @return
  82. */
  83. private String getCurrentClassPath(){
  84. //String path=this.getClass().getResource("").getPath();
  85. //String path=this.getClass().getResource(".").getPath();
  86. String path=this.getClass().getResource("/").getPath();
  87. String temp = path.replaceFirst("/", "");
  88. String separator = System.getProperty("file.separator");
  89. String resultPath = temp.replaceAll("/", separator + separator);
  90. return resultPath;
  91. }
  92. public static void main(String[] args) {
  93. System.out.println(getSysPath());
  94. }
  95. }

java 文件处理的更多相关文章

  1. 小兔Java教程 - 三分钟学会Java文件上传

    今天群里正好有人问起了Java文件上传的事情,本来这是Java里面的知识点,而我目前最主要的精力还是放在了JS的部分.不过反正也不麻烦,我就专门开一贴来聊聊Java文件上传的基本实现方法吧. 话不多说 ...

  2. 从java文件和CS文件里查询方法使用次数工具

    前几天,领导让我找一下老系统(Java)里getRemoteUser方法都哪个文件用了,package是什么,方法被调用了多少次,当时因为着急,所以,直接人工找的,但是以后要是再出现,人工找就太讨厌了 ...

  3. 一个Java文件至多包含一个公共类

    编写一个java源文件时,该源文件又称为编译单元.一个java文件可以包含多个类,但至多包含一个公共类,作为编译时该java文件的公用接口,公共类的名字和源文件的名字要相同,源文件名字的格式为[公共类 ...

  4. Android Studio解决未识别Java文件(出现红J)问题

    1.问题:java文件出现了红J的问题,正常情况下应该是显示蓝色的C标识. 2.解决方案:切换到project视图下,找到app这个module里的build.gradle,在android结构里插入 ...

  5. Eclipse不自动编译java文件的终极解决方案

    最近我的eclipse经常犯傻,项目中总是有很多,启动项目也是没有启动类.查了下项目中生成的class文件,我靠竟然没有,或者还是以前的.原来是eclipse犯傻了,它没帮我自动编译java文件.一般 ...

  6. Java基础-一个java文件多个类的问题

    一个.java文件当然可以包括多个类.但这些类有一个特殊的类与其它的不同,,这个类是带public 属性的类.一个.java类文件中仅有一个public属性的类.而且这个类与文件名相同.

  7. 【安卓】安卓res文件夹下的资源文件与R.java文件里面类的对应关系

    对于drawable.layout.menu文件夹下的每一个文件都分别会在R.java文件里面生成drawable.layout.menu类的一个常量,类名就是文件夹的名字,常量的名字就是文件名字. ...

  8. java文件来演示如何访问MySQL数据库

    java文件来演示如何访问MySQL数据库. 注:在命令行或用一个SQL的前端软件创建Database. 先创建数据库: CREATE DATABASE SCUTCS; 接着,创建表: CREATE ...

  9. Intellij Idea 工具在java文件中如何避免 import .*包

    Intellij Idea工具在java文件中怎么避免import java.utils.*这样的导入方式,不推崇导入*这样的做法!Editor->Code Style->Java-> ...

  10. gen目录无法更新,或者gen目录下的R.JAVA文件无法生成

    gen目录无法更新,或者gen目录下的R.JAVA文件无法生成 1.gen目录的用处 android gen目录下的R.java并不是由用户创建,而是android工程本身将android的资源进行自 ...

随机推荐

  1. c#导出文件,文件名中文乱码解决方法。

    public string clFielName(string fileName) { System.Web.HttpContext curContext = System.Web.HttpConte ...

  2. 如何使代码审查更高效【摘自InfoQ】

      代码审查者在审查代码时有非常多的东西需要关注.一个团队需要明确对于自己的项目哪些点是重要的,并不断在审查中就这些点进行检查. 人工审查代码是十分昂贵的,因此尽可能地使用自动化方式进行审查,如:代码 ...

  3. 实现php获取mp3文件元信息如播放时间歌曲作者等

    最近收集到一个php获取mp3文件元信息的类,感觉比较方便.现在分享给大家! 下面是使用方式和测试方式: <?php include_once 'mp3file.class.php'; func ...

  4. vvv

    すぎやま(杉山) ハイコンテンツコンテスト assortedアクセント・音節as・sórt・ed 発音記号/‐ṭɪd/音声を聞く [形容詞]1分類した,仕分けした.2〈ビスケットなど〉詰め合わせの.用 ...

  5. High Context とLow Context文化

    社会の様々な文化を分類するのに.Low context culture, High context cultureという分け方がある.ビジネススクールのグローバル・マーケティングの授業などでよく取り上 ...

  6. 从零开始PHP学习 - 第一天

    写这个系列文章主要是为了督促自己  每天定时 定量消化一些知识! 同时也为了让需要的人 学到点啥~! 本人技术实在不高!本文中可能会有错误!希望大家发现后能提醒一下我和大家! 偷偷说下 本教程最后的目 ...

  7. silverlight datagrid绑定匿名类

    原文 http://www.cnblogs.com/luweis/archive/2011/10/21/2220587.html 刚开始遇到的一个问题是这样的,我有一个datagrid,根据不同的条件 ...

  8. 【FZU】2152 文件系统

     Problem 2152 文件系统 Accept: 63    Submit: 126 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Probl ...

  9. SPOJ 3267 求区间不同数的个数

    题意:给定一个数列,每次查询一个区间不同数的个数. 做法:离线+BIT维护.将查询按右端点排序.从左到右扫,如果该数之前出现过,则将之前出现过的位置相应删除:当前位置则添加1.这样做就保证每次扫描到的 ...

  10. UVAlive 2911 Maximum(贪心)

    Let x1, x2,..., xm be real numbers satisfying the following conditions: a) -xi ; b) x1 + x2 +...+ xm ...