java读取某个目录下所有文件并通过el表达式将相关文件信息展示出来,js提供页面搜索及查看下载功能

从服务器上读取某个目录下的文件  将文件名 文件修改日期   及文件 大小展示在前台  并可以查看及下载

第一步:读取文件目录下的文件,并将文件按时间由大到小排列

public ArrayList<File> getLogs() {

// TODO Auto-generated method stub

ArrayList<File>  tomcatLogs = new ArrayList<File>();

File path = new File("");

File newPath = new File(path.getAbsolutePath()+"\\log");  //这里默认的是tomcat默认的工作目录日志

File[] files = newPath.listFiles();

File tempFile = new File("");

for(int i=0;i<files.length;i++){   //使用冒泡排序法将文件按修改时间排序

for(int j=i;j<files.length;j++){

if(files[i].lastModified()<files[j].lastModified()){

tempFile = files[i];

files[i] = files[j];

files[j] = tempFile;

}

}

}

for ( File file : files )

{

tomcatLogs.add(file);

}

return tomcatLogs;

}

第二步:将获取的文件LIST展示在前台上使用技术:EL表达式如下图所示,并提供界面搜索功能。

代码展示:

<link rel="stylesheet" type="text/css" href="${ctx}/css/bca/dialog.css" />

<style>

.content{

margin-top:20px;

}

#commands{

margin-top:10px;

padding-left: 0px;

}

#commands li{

list-style:none;

backgroud: #000;

height: 40px;

line-height: 40px;

color:#000;

padding-left:10px;

width: 100%;

}

.selectedLi{

background: #40C5F0;

border-left: 5px solid #0294AC;

}

.selectedLi a{

color:#fff;

text-decoration: none;

}

</style>

</head>

<body>

<script type="text/javascript">

function getTomcatLog(logName,type,size){

if(type == "down"){

var urlLogShow = sprintf("${ctx}/log/downLoadLog.do?logName=%s&type=%s",logName,type);

window.open(urlLogShow);

}else{

var intSize = parseInt(size);

if(size>1024*2){

showMessage(‘文件太大不能在浏览器中打开,请下载之后查看!‘);

return;

}

var urlLogShow = sprintf("${ctx}/pages/log/tomcatLogShow.page?logName=%s&type=%s",logName,type);

window.open(urlLogShow);

}

}

var findSysName = function(){

$("#commands li").hide();

var keyword = $("#log_key").val();

if (keyword.length == 0) {

$("#commands li").show();

} else {

$("#commands li:contains(" + keyword + ")").show();

}

}

</script>

<div class="col-sm-3" style="padding-right: 0px;width: 75%;margin-left: 16%;float: inherit;">

<fieldset class="fieldsetStyle"  id="showCommands">

<div class="ct_control_bar">

<input class="box-height" style="width:30%" placeholder="search" type="text" name="log_key" id="log_key">

<input class="btn btn-primary btn-xs" type="button" value="${bcafn:_("Search")}" id="logSelect" onclick="findSysName()">

</div>

<div id="groupTree" name="groupTree" class="systemTree">

<ul id="commands" class="sys_ula">

<li >

<div style="width: 250px;float: left;">文件名称</div>

<div style="width: 200px;float: left;" align="left" >修改日期</div>

<div style="width: 100px;float: left;" align="right">大小</div>

</li>

</br>

<c:forEach var="log" items="${logs}">

<li >

<div style="width: 250px;float: left;">${log.getName() }</div>

<div style="width: 200px;float: left;" align="left" id="${log.getName() }">${log.lastModified() }</div>

<div style="width: 100px;float: left;" align="right"> <fmt:formatNumber type="number" value="${log.length()/1024 }" maxFractionDigits="0"/>KB</div>

&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;

<input class="btn btn-primary btn-xs" type="button" value="${bcafn:_("Download")}"  onclick="getTomcatLog(‘${log.getName() }‘,‘down‘,‘${log.length()/1024 }‘)">

<c:if test="${log.length()/1024<= 1024*2}">

<input class="btn btn-primary btn-xs" type="button" value="${bcafn:_("View")}"  onclick="getTomcatLog(‘${log.getName() }‘,‘show‘,‘${log.length()/1024 }‘)">

</c:if>

</li>

</c:forEach>

<script type="text/javascript">

$(document).ready(function() {

<c:forEach var="log" items="${logs}" >

var spanid = "${log.getName() }";

var date = getFormatDateByLong(parseInt("${log.lastModified() }"));

document.getElementById(spanid).innerHTML = date;

</c:forEach>

});

</script>

</ul>

</div>

</fieldset>

</div>

<div class="content content-btn" style="margin-top: 0px; margin-right: 80px;margin-bottom:10px;">

<input id="cancel" type="button" value="${bcafn:_("Close")}" class="btn btn-default"/>

</div>

</body>

技术特点: (1)、javaScript中使用el表达式,将毫秒级的时间转换为日期格式 eg:1462520365327 转为 2016-05-06 15:39:25。

(2)、jquery、javaScript页面搜索功能。

第三步、查看或者下载

public String showOrDownLog(String logName,String type,HttpServletResponse response) {

// TODO Auto-generated method stub

String logHsow="";

if(StringUtils.isNotEmpty(logName)){

File path = new File("");

try {

InputStream fis = new FileInputStream(path.getAbsolutePath()+"\\log\\"+logName);

if("show".equals(type)){ //查看

BufferedReader reader=  new BufferedReader(new InputStreamReader(fis,"GBK"));  //根据文件格式来定

String line=null;

for(;(line=reader.readLine())!=null;){     logHsow+=line+"\n"; }

reader.close();

}else{//下载

response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

response.setHeader("Content-Disposition", "attachment; filename="+ UrlEncoder.encode(logName,"utf-8"));

response.setHeader("Cache-Control","max-age=0");

byte[] buffer = new byte[fis.available()];

fis.read(buffer);

response.getOutputStream().write(buffer);

response.getOutputStream().flush();

response.getOutputStream().close();

fis.close();

}

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

return logHsow;

}

时间: 2024-10-20 17:47:37

java读取某个目录下所有文件并通过el表达式将相关文件信息展示出来,js提供页面搜索及查看下载功能的相关文章

java 读取固定目录下的文件(和上篇差点儿相同)

package gao.org; import java.io.FileNotFoundException; import java.io.IOException; import java.io.File; public class ReadFile { public ReadFile() { } /** * 读取某个目录下的全部文件 */ public static boolean readfile(String filepath) throws FileNotFoundException,

Java 读取指定目录下的文件名和目录名

需求:读取指定目录下的文件名和目录名 实现如下: package com.test.common.util; import java.io.File; public class ReadFile { /* * 读取指定路径下的文件名和目录名 */ public void getFileList() { File file = new File("D:\\"); File[] fileList = file.listFiles(); for (int i = 0; i < file

Java读取指定目录下的所有文件(子目录里的文件也可递归得到)

1 import java.io.File; 2 3 public class ReadFile { 4 5 public static void main(String[] args) { 6 7 // path是指定目录的绝对路径 8 String path = "/Users/tonychan/Workspaces/MyEclipse 2017 CI/Zhangjiajie/WebRoot/pics"; 9 getFile(path); 10 11 } 12 13 // 给定目录

java读取resource目录下的配置文件

1:配置resource目录 下的文件 host: 127.0.0.1 port: 9300 2:读取    / 代表resource目录 InputStream in = this.getClass().getResourceAsStream("/config.properties"); Properties properties = new Properties(); try { properties.load(in); } catch (IOException e) { e.pr

Java读取WEB-INF目录下的properties配置文件

文件位置: 代码: public static Properties getProperties(){ Properties pts = new Properties (); FileInputStream in = null; try{ String path = UtilManager.class.getResource("/").getPath(); String websiteURL = (path.replace("/build/classes", &qu

Java API 读取HDFS目录下的所有文件

/** * 获取1号店生鲜食品的分类id字符串 * @param filePath * @return */ public String getYHDSXCategoryIdStr(String filePath) { final String DELIMITER = new String(new byte[]{1}); final String INNER_DELIMITER = ","; // 遍历目录下的所有文件 BufferedReader br = null; try { F

Android开发系列(十七):读取assets目录下的数据库文件

在做Android应用的时候,不可避免要用到数据库.但是当我们把应用的apk部署到真机上的时候,已经创建好的数据库及其里边的数据是不能随着apk一起安装到真机上的. (PS:这篇博客解决了我前面博客中写的一个小游戏的一个问题,另外也可以读取Raw目录下的数据库文件) 这就造成了一个问题,这个问题其实很好解决,解决方法如下: 我们首先把有数据的数据库文件放在assets资源目录下边,然后在apk应用启动的时候,把assets目录下的数据库文件的数据写入到真机的内存中去. 下边开始我们的代码编写:

Python 读取某个目录下的文件

读取某个目录下的文件,如'/Users/test/test_kmls'目录下有test1.txt.test2.txt. 第一种方法读出的all_files是test1.txt.test2.txt 1 import os 2 3 kml_path=os.path.abspath('/Users/test/test_kmls') 4 all_files=os.listdir(kml_path) 5 for file in all_files: 6 print file 第二种方法可以获得文件的全路径

iOS案例:读取指定目录下的文件列表

// // main.m // 读取指定目录下的文件列表 // // Created by Apple on 15/11/24. // Copyright © 2015年 Apple. All rights reserved. // /* *读取指定目录下的文件列表 */ #import <Foundation/Foundation.h> void myQuickMethod(); int main(int argc, const char * argv[]) { //文件操作对象 NSFil