- 浏览: 1582977 次
- 性别:
- 来自: 北京
-
文章分类
最新评论
-
nich002:
原网站失效了。撸主简单粗暴的复制过来,可读性极差!差评!
Apache配置详解(最好的APACHE配置教程) -
107x:
不错,谢谢!
LINUX下查看文件夹下的文件个数! -
Hypereo:
好你妹,连个格式都没有!
Apache配置详解(最好的APACHE配置教程) -
resteater:
代码排版感觉有点乱!收发信息代码可读性不强!请问第一次发服务器 ...
java socket例子 -
resteater:
代码排版感觉有点乱!收发信息代码可读性不强!请问第一次发服务器 ...
java socket例子
前段时间实现的一个文件管理器:
package test.bwl; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.io.UnsupportedEncodingException; /** * 文件发布工具类 * * @author bwl * @version 1.0 */ public class FilePublish { /** * 十进制到十六进制的转换 */ public static final char[] DEC2HEX = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; /** * 文件存储的根路径 */ public static final String BASE_DIR = "F://temp//"; /** * 是否是测试模式 */ public static final boolean DEBUG = false; public static void main(String[] args) { try { FilePublish.getInstance().publishFile(); } catch (IOException e) { e.printStackTrace(); } } /** * 提供单例对象的静态内部类 */ private static class SingletonHolder { public static FilePublish instance = new FilePublish(); } /** * 获取对象实例 * @return */ public static FilePublish getInstance() { return SingletonHolder.instance; } /** * 将html文件发布到文件系统 * @throws IOException */ public void publishFile() throws IOException { System.out.println("Begin publish files..."); //读取模板内容 File module = new File(".//WebRoot/temple.htm"); BufferedReader br = new BufferedReader(new FileReader(module)); String line; StringBuffer sb = new StringBuffer(); while ((line = br.readLine()) != null) { sb.append(line); } String template = sb.toString(); //模板数据 //文件发布 long begin = System.currentTimeMillis(); //记录上次的时间 //long cur = 0L; //记录本次时间 PrintWriter pw; int temp; //临时变量 for (int i = 0; i < 1; i++) { temp = (int) (Math.random() * Integer.MAX_VALUE); File f = new File(BASE_DIR + id2dir(temp) + temp + ".html"); if (!f.exists()) { if (!f.getParentFile().isFile()) { f.getParentFile().mkdirs(); } f.createNewFile(); } pw = new PrintWriter(new BufferedWriter(new FileWriter(f))); // pw.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); // pw.write("<html><head>"); // pw.write("<title>test</title>"); // pw.write("</head><body>"); String tempStr = template; tempStr = tempStr .replaceFirst( "<<content>>", "秋季,天气转凉,是易患感冒的时节。因患感冒到北京友谊医院就诊的患者有所增加。友谊医院呼吸科专家提醒,由于早晚温差大,感冒指数较高,大家要适当增加衣物,同时采取预防感冒的有效方法。 "); pw.write(tempStr); // pw.write("</body></html>"); pw.flush(); pw.close(); } System.out.println(System.currentTimeMillis() - begin); } /** * 删除所有发布文件的方法 */ public void deleteFiles() { doDelete(BASE_DIR); } /** * 执行刪除操作 */ public void doDelete(String path) { File root = new File(path); if (!root.exists()) { return; } File[] children = root.listFiles(); File temp; for (int i = 0; i < children.length; i++) { temp = children[i]; if (temp.exists()) { if (temp.isDirectory()) { doDelete(temp.getAbsolutePath()); } temp.delete(); } } } /** * 根据id确定文件的路径 * * @param id * @return */ public String id2dir(int id) { int depth = 3; //文件夹的层数,最多四层 char[] path = new char[depth * 4]; depth = depth > 4 ? 4 : (depth < 0 ? 1 : depth); id = id >>> ((4 - depth) * 8); for (int i = 0; i < depth; i++) { path[(depth - i) * 4 - 1] = '/'; path[(depth - i) * 4 - 2] = '/'; path[(depth - i) * 4 - 3] = DEC2HEX[id & 0x0f]; id = id >>> 4; path[(depth - i) * 4 - 4] = DEC2HEX[id & 0x0f]; id = id >>> 4; } return new String(path); } /** * 向模板填充数据 * * @param template * @param content * @return * @throws UnsupportedEncodingException */ public String fillTemplate(String template, String content) throws UnsupportedEncodingException { // long start = System.nanoTime(); // //填充内容 // fillTemplate(template, "########################"); // System.out.println(System.nanoTime() - start); // // // start = System.nanoTime(); // template.replaceAll("<<content>>", "########################"); // System.out.println(System.nanoTime() - start); //原始字符串 if (DEBUG) { System.out.println(template); } byte[] cc = template.getBytes(), dd = new byte[cc.length], bb = new byte[32]; byte first = ' ', second; int index = 0, bbIndex = 0, ddIndex = 0; StringBuffer sb = new StringBuffer(); while (index < cc.length) { second = first; first = cc[index++]; dd[ddIndex++] = first; if (first != '<') { continue; } if (second == '<') { sb.append(new String(dd).substring(0, ddIndex - 2)); ddIndex = 0; while (cc[index] != '>') { bb[bbIndex++] = cc[index++]; } index += 2; String t = (new String(bb)).substring(0, bbIndex); if (t.equals("content")) { sb.append(content); } } } sb.append((new String(dd)).substring(0, ddIndex)); if (DEBUG) { System.out.println(sb.toString()); } return sb.toString(); } }
发表评论
-
JVM问题追查与调优
2012-03-27 14:44 1157JDK的几种分析工具 http://liudaoru ... -
NodeJs相关资料
2011-08-18 14:55 3033NodeJs获取参数: proces ... -
jprofiler追踪问题
2011-08-12 18:20 1060Jprofiler下载页: http://www.ej ... -
Linux服务器性能评估与优化【z】
2011-07-01 10:05 1568来自:http://www.itlearner.com/ ... -
Java 理论与实践: 非阻塞算法简介【z】
2011-03-26 20:39 1301From: http://www.ibm.com/develo ... -
Java Crash问题分析[z]
2011-03-23 14:41 5984参考: http://www.ibm.com/develop ... -
Berkeley DB相关
2010-09-25 22:17 1066为什么要使用Berkeley DB,它适合什么场合应用?Ber ... -
熟悉系统方法总结
2010-07-06 14:26 834了解一个陌生的系统是我们经常碰到的事情,下面总结一下自己的一些 ... -
Java缓存框架 EhCache
2010-07-06 14:09 4743From: http://www.oschina.net/p/ ... -
【nio】使用 ServerSocketChannel 实现的 File 服务器[z]
2010-05-21 17:31 3996From: http://www.java2000.net/p ... -
Memcached命令行管理
2010-03-15 11:18 4505From: http://www.exp2up.com/2 ... -
(转)Resin服务器配置指南
2010-01-21 15:35 3509From:http://blog.21cn.com/super ... -
Flickr架构
2010-01-11 09:52 1277From: http://www.cyask.com/ques ... -
JDK的几种分析工具
2009-12-04 12:13 10917From: http://blog.csdn.net/hant ... -
XMemcached——一个新的开源Java memcached客户端
2009-10-23 09:27 1904From: http://www.infoq.com/cn/ ... -
多线程任务调度学习
2009-10-16 13:58 2321昨天找到一套多线程任务调度的代码,相当的不错,先把思路总结一下 ... -
用HSCALE实现MySQL的数据分布式存储
2009-10-15 12:47 3029From:http://www.ningoo.net/ht ... -
马化腾:搜索、电子商务硬仗一定要坚持打
2009-10-15 12:09 1734From:http://www.techweb.com.c ... -
MySQL分表实现上百万上千万记录分布存储的批量查询设计模式【z】
2009-10-15 09:56 3187From:http://hi.baidu.com/jabber ... -
nginx负载均衡和lvs负载均衡的比较分析【z】
2009-10-13 20:02 1490From:http://www.shouker.com/u ...
相关推荐
云炫文件管理器是电商、办公人员常用的专业管理软件之一。支持文件改扩展名、后缀名、大小写字母区分,自定义重命名、替换(删除文件名中的文字、空格、字符号等)、插入(添加新内容得命名文件名)、及翻译、随机等...
本文实例讲述了Android开发之简单文件管理器实现方法。分享给大家供大家参考,具体如下: 这里运用Java I/O、ListActivity、Dialog、Bitmap等实现简单文件管理器,可以查看目录文件,修改文件名,删除文件,打开文件...
(安卓APP项目源代码)文件管理器源码,文件拖曳,list弹性,root ,zip压缩解.zip(安卓APP项目源代码)文件管理器源码,文件拖曳,list弹性,root ,zip压缩解.zip(安卓APP项目源代码)文件管理器源码,文件拖曳,list弹性,...
**基于QT+Linux/Windows的简易文件管理器** 在IT领域,开发一款跨平台的文件管理器是一项常见的任务,这通常涉及到对操作系统API的深入理解以及用户界面设计。本项目是一个基于QT框架实现的简易文件管理器,它可以...
通过WEB页面实现一个简单的文件管理器,可以使用浏览器来管理服务器上所有磁盘下的文件和目录。 实现:文件和目录遍历;文件和目录的删除(单选、多选)、改名;目录的建立;文件的上传下载,所有目录和文件对应图标...
QT实现文件管理器是利用QT库创建的一个应用程序,旨在模仿Windows操作系统中的文件管理器功能,允许用户进行文件和文件夹的操作。 在Windows系统中,文件管理器是用户与文件系统交互的主要界面,它提供了浏览、组织...
RE文件管理器是由Speed Software开发的一款Android平台高权限文件管理器,获取ROOT权限后可对系统文件进行操作,可以说是Android系统上最好用的文件管理器,老牌文件管理工具,支持多种文件格式查看、权限管理、蓝牙...
Delphi文件管理器是一款基于Embarcadero Delphi开发的高效、强大的文件处理工具,它提供了丰富的功能,使用户能够方便地对计算机上的文件和目录进行各种操作。这款软件不仅适用于个人用户,也广泛应用于企业级文件...
在Android平台上,构建一个文件管理器是开发过程中常见的需求,尤其对于那些希望提供自定义文件操作体验的应用来说。本文将详细解析如何实现一个简单的安卓文件管理器,它具备文件类型筛选和异步加载文件缩略图的...
QT文件管理器(FileManage)是一款利用QT框架开发的文件管理应用程序,专为在Tiny210平台上运行的Linux系统设计。在QT4.7环境下,该应用已经过调试并成功运行,显示了其良好的兼容性和稳定性。QT是一个强大的跨平台...
### 基于Android文件管理器的设计与实现毕业设计开题报告 #### 一、选题背景与经过 在科技迅速发展的今天,智能手机已经成为人们生活中不可或缺的一部分,它不仅仅是通讯工具,更是集工作、娱乐、社交等多种功能于...
Java文件管理器是一款基于Java编程语言开发的软件,它的主要功能是模拟Windows操作系统中的文件管理系统,让用户能够方便地浏览、操作、管理和组织计算机上的文件和目录。作为一个专业的IT大师,我将详细介绍Java...
ASP.NET 文件管理器是一款基于ASP.NET技术开发的网络应用程序,它允许用户通过浏览器在远程客户端对服务器上的文件和目录进行管理。这个工具提供了类似于本地文件系统界面的功能,使得用户能够执行常见的文件操作,...
基于java swing 开发的文件管理器: 采用苹果 ios 主题风格,支持环形进度条显示cpu利用率 GUI文件管理系统 1、实现文件夹创建、删除、进入。 2、实现当前文件夹下的内容罗列。 3、实现文件拷贝和文件夹拷贝...
【标题】基于QSSH的sftp文件管理器 源代码 在IT行业中,文件管理是日常工作中不可或缺的一部分,尤其是在远程服务器操作时。SFTP(Secure File Transfer Protocol)是一种安全的网络协议,用于在不安全的网络环境中...
wince6 最好用的文件管理器,经测试。双窗口,可显示内置卡、sd卡、u盘。车载导航进ce最实用。 wince6 最好用的文件管理器,经测试。双窗口,可显示内置卡、sd卡、u盘。车载导航进ce最实用。
RE文件管理器是一款深受用户喜爱的手机文件管理应用,它以其强大的功能和用户友好的界面在Android系统中广受欢迎。现在,"RE文件管理器中文电脑版"将这一优秀的工具带到了个人计算机平台上,为用户提供了一种全新的...
基于命令行的文件管理器(Java实现),仅包含未编译的java文件 基于命令行的文件管理器(Java实现),仅包含未编译的java文件
【Ajax文件管理器】是基于Web的文件管理系统,利用Ajax技术实现无刷新的交互体验,为用户提供方便快捷的文件操作方式。以下列出的7款免费、强大的Ajax文件管理器,适用于各种WEB应用的文件管理需求。 1. **...
Android7.0 Intent打开文件管理器 获取文件真实路径。虽然网上很多demo,但是没有一个能够兼容所有Android机的,去网上学习了然后自己亲测过手机分别有Android7.0/6.0/4.3个版本。