- 浏览: 1576043 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
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 1143JDK的几种分析工具 http://liudaoru ... -
NodeJs相关资料
2011-08-18 14:55 3006NodeJs获取参数: proces ... -
jprofiler追踪问题
2011-08-12 18:20 1047Jprofiler下载页: http://www.ej ... -
Linux服务器性能评估与优化【z】
2011-07-01 10:05 1549来自:http://www.itlearner.com/ ... -
Java 理论与实践: 非阻塞算法简介【z】
2011-03-26 20:39 1284From: http://www.ibm.com/develo ... -
Java Crash问题分析[z]
2011-03-23 14:41 5972参考: http://www.ibm.com/develop ... -
Berkeley DB相关
2010-09-25 22:17 1054为什么要使用Berkeley DB,它适合什么场合应用?Ber ... -
熟悉系统方法总结
2010-07-06 14:26 816了解一个陌生的系统是我们经常碰到的事情,下面总结一下自己的一些 ... -
Java缓存框架 EhCache
2010-07-06 14:09 4728From: http://www.oschina.net/p/ ... -
【nio】使用 ServerSocketChannel 实现的 File 服务器[z]
2010-05-21 17:31 3970From: http://www.java2000.net/p ... -
Memcached命令行管理
2010-03-15 11:18 4488From: http://www.exp2up.com/2 ... -
(转)Resin服务器配置指南
2010-01-21 15:35 3463From:http://blog.21cn.com/super ... -
Flickr架构
2010-01-11 09:52 1267From: http://www.cyask.com/ques ... -
JDK的几种分析工具
2009-12-04 12:13 10903From: http://blog.csdn.net/hant ... -
XMemcached——一个新的开源Java memcached客户端
2009-10-23 09:27 1893From: http://www.infoq.com/cn/ ... -
多线程任务调度学习
2009-10-16 13:58 2302昨天找到一套多线程任务调度的代码,相当的不错,先把思路总结一下 ... -
用HSCALE实现MySQL的数据分布式存储
2009-10-15 12:47 3017From:http://www.ningoo.net/ht ... -
马化腾:搜索、电子商务硬仗一定要坚持打
2009-10-15 12:09 1717From:http://www.techweb.com.c ... -
MySQL分表实现上百万上千万记录分布存储的批量查询设计模式【z】
2009-10-15 09:56 3172From:http://hi.baidu.com/jabber ... -
nginx负载均衡和lvs负载均衡的比较分析【z】
2009-10-13 20:02 1472From:http://www.shouker.com/u ...
相关推荐
在Android平台上,实现一个文件管理器涉及到多个关键知识点,这些知识点包括但不限于文件系统的理解、Android权限管理、Intent机制、URI转换以及自定义文件选择器。下面我们将深入探讨这些内容。 首先,Android文件...
【安卓Android源码——MIUI文件管理器】 在Android操作系统中,MIUI是小米公司推出的一个深度定制的用户界面,它以其丰富的功能和独特的设计深受用户喜爱。本压缩包文件包含的是MIUI文件管理器的源代码,对于开发者...
Java 文件管理器是一款基于Java语言开发的文件管理系统,它提供了用户友好的图形用户界面(GUI),使得用户可以方便地进行文件和目录的操作,如浏览、创建、删除、重命名、移动和复制等。这款应用程序旨在提供一个...
文件管理器是操作系统中的一个重要组成部分,它负责组织、管理和操作用户存储在计算机上的文件和目录。这个名为"文件管理器源码与学习笔记"的压缩包很可能是为开发者或计算机科学爱好者提供的一个学习资源,包含了...
【C# 简单文件管理器】是一个基于C#编程语言开发的实用工具,旨在提供用户友好的界面,方便用户进行文件和目录的操作。它借鉴了Windows资源管理器的特性,包括清晰的图标显示和直观的操作方式,使得在不同磁盘间移动...
本文将深入探讨SMB协议以及基于该协议开发的安卓文件管理器APP的相关知识点。 一、SMB协议详解 1. SMB协议的历史:SMB最初由IBM在1980年代开发,后来微软在Windows NT中将其标准化,成为Windows网络文件共享的基础...
通过WEB页面实现一个简单的文件管理器,可以使用浏览器来管理服务器上所有磁盘下的文件和目录。 实现:文件和目录遍历;文件和目录的删除(单选、多选)、改名;目录的建立;文件的上传下载,所有目录和文件对应图标...
在Android操作系统中,文件管理器是一个至关重要的工具,它允许用户直观地查看、组织、创建、复制、移动、删除和共享手机或平板电脑上的文件。本文将深入探讨Android安卓文件管理器的相关知识点,包括其功能、操作...
【PHP文件管理器——File Manager概述】 PHP文件管理器,如File Manager,是基于PHP语言构建的一款实用工具,用于在Web界面中实现对服务器上文件和目录的操作。它提供了诸如浏览、上传、下载、重命名、移动、复制、...
与其他移植到电视的文件管理器不同,小白文件管理器是完全针对电视来进行设计、开发,因此出色地适配了电视的各种操作方式,就算使用电视遥控器也能快速完成文件管理操作。此外,在小白文件管理器“智能分类,远程...
### 基于Android文件管理器的设计与实现毕业设计开题报告 #### 一、选题背景与经过 在科技迅速发展的今天,智能手机已经成为人们生活中不可或缺的一部分,它不仅仅是通讯工具,更是集工作、娱乐、社交等多种功能于...
《Android 文件管理器源代码解析》 Android 文件管理器是一款用于操作和管理Android设备上文件的应用程序,它允许用户查看、复制、移动、删除、重命名以及分享存储在设备内部和外部存储卡上的文件。本篇文章将深入...
Delphi文件管理器是一款基于Delphi编程环境开发的软件,用于对计算机上的文件和文件夹进行管理和操作。它集成了常见的文件操作功能,如复制、移动、重命名,旨在提供一个用户友好的界面来增强用户的文件操作体验。...
《小白文件管理器》是一款高效的文件管理器,尤其适合在电视这些大屏设备上使用:特别优化的操作流程保证了使用遥控器也能完成各种文件管理操作。功能上,除了支持最基本的安装、卸载、复制、粘贴、删除操作之外,还...
软件名称:小米文件管理器 MiXplorer 软件版本:v5 1 0 修正全中文版 软件语言:中文 软件大小:1 0M 软件包名:com android mixplorer 支持系统:Android 2 2+ MiXplorer文件管理器是一款流畅 漂亮 功能全面的文件...
《Xplore文件管理器:智能设备的高效文件操控利器》 Xplore文件管理器是一款专为S60V3智能手机设计的强大文件管理工具,它以其简洁的界面和丰富的功能,深受用户喜爱。在这款应用中,用户可以轻松地进行文件的浏览...
**Android 文件管理器源码详解** 在Android平台上,文件管理器是用户操作手机或平板设备上文件的重要工具。本文将深入解析一个自编的Android文件管理器源码,旨在帮助开发者理解和实现自己的文件管理应用。 首先,...
【标题】"jar文件管理器 模拟文件管理"是一个基于Java编程语言开发的应用程序,主要目的是实现对文件和文件夹的基本操作。这个系统利用了Java的jar打包技术,将所有必要的类和资源打包成一个可执行的jar文件,使得...
**jQuery文件管理器** jQuery文件管理器是一种基于Web的文件管理系统,它利用JavaScript库jQuery的强大功能,为用户提供方便、直观的界面来浏览、上传、下载、删除和管理服务器上的文件。这种工具通常被用于网站...