<%@page import="vo.Queshu"%>
<%@page import="java.util.ArrayList"%>
<%@page import="pa.ProblemADAO"%>
<%@page import="vo.Queshu"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>JSP Page</title>
<link rel="stylesheet" href="<%=request.getContextPath()%>/res/css/bootstrap.min.css" type="text/css" media="screen" />
</head>
<body>
<h1>按原有顺序显示数据</h1>
<table class="table table-striped table-bordered">
<tr>
<th></th>
<th>编号</th>
<th>缺书书名</th>
<th>缺书出版社</th>
<th>作者</th>
<th>出版日期</th>
<th>书号</th>
<th>留言</th>
<th>用户名</th>
<th>登记时间</th>
</tr>
<%
//String thePath=request.getRealPath("/")+"ch08\\theFile";
ProblemADAO qdao = new ProblemADAO();
ArrayList<Queshu> list = qdao.list();
//多条记录用while循环
for (Queshu s : list) {
%>
<tr>
<td>
<%=s.getQuesuid()%>
</td>
<td>
<%=s.getShu_name()%>
</td>
<td>
<%=s.getBanshe()%>
</td>
<td>
<%=s.getZuozhe()%>
</td>
<td>
<%=s.getChuban_date()%>
</td>
<td>
<%=s.getISBN()%>
</td>
<td>
<%=s.getLiuyan()%>
</td>
<td>
<%=s.getUser()%>
</td>
<td>
<%=s.getTime()%>
</td>
</tr>
<%
}
%>
</table>
</body>
</html>
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package pa;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import util.FileUtils;
import vo.Queshu;
/**
*
* @author Administrator
*/
public class ProblemADAO {
public boolean save( ) {
// try {
//
// FileWriter writer = new FileWriter("d:/ks/20204075001/data/a/data.txt");
// //FileWriter writer = new FileWriter(file);
// //文件里的数据6-10条
// BufferedWriter bufferWriter = new BufferedWriter(writer);
try {
OutputStreamWriter outputStreamWriter=
new OutputStreamWriter(
new FileOutputStream("d:/ks/20214075221/data/a/data.txt"),"UTF-8");
BufferedWriter bufferWriter = new BufferedWriter(outputStreamWriter);
bufferWriter.close();
outputStreamWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
return false;
}
return true;
}
/**
* 显示全部记录
*
* @return
*/
public ArrayList<Queshu> list() {
ArrayList<Queshu> queshus = new ArrayList<Queshu>();
List <String> datas=FileUtils.readLines("d:/ks/20214075221/data/a/data.txt");
for(String data :datas){
String temp[]=data.replaceAll("\"","").split(",");
Queshu queshu = new Queshu(Integer.parseInt(temp[0]),temp[1],temp[2],temp[3],temp[4],temp[5],temp[6],temp[7],temp[8]);
queshus.add(queshu);
}
return queshus;
}
//编号属性排序,排序
public ArrayList<Queshu> listsort1() {
ArrayList<Queshu> all = list();
Collections.sort(all);
return all;
}
//编号属性排序。比较器用匿名类实现
public ArrayList<Queshu> listsort2() {
ArrayList<Queshu> all = list();
//排序
all.sort(new Comparator<Queshu>(){
@Override
public int compare(Queshu o1,Queshu o2){ return (o1.getQuesuid()-o2.getQuesuid()); }
});
return all;
}
//按书名属性排序,比较器用lamda表达式实现
public ArrayList<Queshu> listsort3() {
ArrayList<Queshu> all = list();
Collections.sort(all,(o1,o2)->{return o1.getShu_name().compareTo(o2.getShu_name());});
//排序
return all;
}
public static void main(String[] args) {
}
}
运行的jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<link rel="stylesheet" href="<%=request.getContextPath()%>/res/css/index.css" type="text/css" media="screen" />
<script type="text/javascript" src="<%=request.getContextPath()%>/res/js/jquery.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/res/js/tendina.min.js"></script>
<script type="text/javascript" src="<%=request.getContextPath()%>/res/js/common.js"></script>
</head>
<body>
<!--顶部-->
<div class="layout_top_header">
<div style="float: left"><span style="font-size: 16px;line-height: 45px;padding-left: 20px;color: #8d8d8d">管理后台</h1></span></div>
<div id="ad_setting" class="ad_setting"></div>
</div>
<!--顶部结束-->
<!--菜单-->
<div class="layout_left_menu">
<ul id="menu">
<li class="childUlLi">
<a href="#" target="menuFrame"><i class="glyph-icon icon-home"></i>A题</a>
<ul>
<li><a href="pa/list.jsp" target="menuFrame">
<i class="glyph-icon icon-chevron-right"></i>按原有顺序显示数据</a>
</li>
<li><a href="pa/listsort1.jsp" target="menuFrame">
<i class="glyph-icon icon-chevron-right"></i>按编号属性排序的结果</a>
</li>
<li><a href="pa/listsort2.jsp" target="menuFrame">
<i class="glyph-icon icon-chevron-right"></i>按编号属性排序比较器用匿名类实现</a>
</li>
<li><a href="pa/listsort3.jsp" target="menuFrame">
<i class="glyph-icon icon-chevron-right"></i>按书名属性排序比较器用lambda表达式实现</a>
</li>
<li><a href="pa/save.jsp" target="menuFrame">
<i class="glyph-icon icon-chevron-right"></i>保存数据</a>
</li>
</ul>
</li>
</ul>
</div>
<!--菜单-->
<div id="layout_right_content" class="layout_right_content">
<div class="route_bg">
<a href="#">主页</a><i class="glyph-icon icon-chevron-right"></i>
<a href="#">管理</a>
</div>
<div class="mian_content">
<div id="page_content">
<iframe id="menuFrame" name="menuFrame" src="welcome.jsp" style="overflow:visible;"
scrolling="yes" frameborder="no" width="100%" height="100%"></iframe>
</div>
</div>
</div>
<div class="layout_footer">
<p>Copyright ©数据科学与大数据21</p>
</div>
</body>
</html>
package vo;
public class Queshu implements Comparable{
private int quesuid ;//编号
private String shu_name;//缺书书名
private String banshe;//缺书出版社
private String zuozhe;//作者
private String chuban_date;//出版日期
private String ISBN;//书号
private String liuyan;//留言
private String user;//用户名
private String time;//登记时间
public Queshu() {
}
public Queshu(int quesuid, String shu_name, String banshe, String zuozhe, String chuban_date, String ISBN, String liuyan, String user, String time) {
this.quesuid = quesuid;
this.shu_name = shu_name;
this.banshe = banshe;
this.zuozhe = zuozhe;
this.chuban_date = chuban_date;
this.ISBN = ISBN;
this.liuyan = liuyan;
this.user = user;
this.time = time;
}
public int getQuesuid() {
return quesuid;
}
public void setQuesuid(int quesuid) {
this.quesuid = quesuid;
}
public String getShu_name() {
return shu_name;
}
public void setShu_name(String shu_name) {
this.shu_name = shu_name;
}
public String getBanshe() {
return banshe;
}
public void setBanshe(String banshe) {
this.banshe = banshe;
}
public String getZuozhe() {
return zuozhe;
}
public void setZuozhe(String zuozhe) {
this.zuozhe = zuozhe;
}
public String getChuban_date() {
return chuban_date;
}
public void setChuban_date(String chuban_date) {
this.chuban_date = chuban_date;
}
public String getISBN() {
return ISBN;
}
public void setISBN(String ISBN) {
this.ISBN = ISBN;
}
public String getLiuyan() {
return liuyan;
}
public void setLiuyan(String liuyan) {
this.liuyan = liuyan;
}
public String getUser() {
return user;
}
public void setUser(String user) {
this.user = user;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
@Override
public String toString() {
return "Queshu{" + "quesuid=" + quesuid + ", shu_name=" + shu_name + ", banshe=" + banshe + ", zuozhe=" + zuozhe + ", chuban_date=" + chuban_date + ", ISBN=" + ISBN + ", liuyan=" + liuyan + ", user=" + user + ", time=" + time + '}';
}
@Override
public int compareTo(Object o) {
Queshu other = (Queshu) o;
return Integer.compare(this.quesuid, other.getQuesuid());
}
}
文件里的内容:
package util;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class FileUtils {
public static List<String> readLines(String fileName){
List<String> arr1 = new ArrayList<>();
BufferedReader br = null;
try {
InputStreamReader isr=new InputStreamReader(new FileInputStream(fileName),"utf-8");
br = new BufferedReader(isr);
String contentLine;
while ((contentLine = br.readLine()) != null) {
if (contentLine.equals("")||contentLine.matches("[\\s]+")) {
continue;
}
}
br.close();
} catch (IOException e) {
}
return arr1;
}
}
FilrUtils.readLines()方法并没有把读取到的文件内容解析放到要返回的List中,相当于于返回一个没有任何元素的List对象, 在while循环中加上arr1.add(contentLine);