std string replacename="C:\readfile.txt"; System.out.println(name.replace("\\", "\\\\&

java读取某个文件夹下的所有文件实例代码
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了java读取某个文件夹下的所有文件实例代码的相关资料,需要的朋友可以参考下
java读取某个文件夹下的所有文件
&&&&&&&&&学习java基础知识,读取文件,读取某个文件夹,需要读取所有文件,如何实现呢,看下实例代码。
实例代码:
import java.io.FileNotFoundE
import java.io.IOE
import java.io.F
public class ReadFile {
public ReadFile() {
* 读取某个文件夹下的所有文件
public static boolean readfile(String filepath) throws FileNotFoundException, IOException {
File file = new File(filepath);
if (!file.isDirectory()) {
System.out.println("文件");
System.out.println("path=" + file.getPath());
System.out.println("absolutepath=" + file.getAbsolutePath());
System.out.println("name=" + file.getName());
} else if (file.isDirectory()) {
System.out.println("文件夹");
String[] filelist = file.list();
for (int i = 0; i & filelist. i++) {
File readfile = new File(filepath + "\\" + filelist[i]);
if (!readfile.isDirectory()) {
System.out.println("path=" + readfile.getPath());
System.out.println("absolutepath="
+ readfile.getAbsolutePath());
System.out.println("name=" + readfile.getName());
} else if (readfile.isDirectory()) {
readfile(filepath + "\\" + filelist[i]);
} catch (FileNotFoundException e) {
System.out.println("readfile()
Exception:" + e.getMessage());
* 删除某个文件夹下的所有文件夹和文件
/*public static boolean deletefile(String delpath)
throws FileNotFoundException, IOException {
File file = new File(delpath);
if (!file.isDirectory()) {
System.out.println("1");
file.delete();
} else if (file.isDirectory()) {
System.out.println("2");
String[] filelist = file.list();
for (int i = 0; i & filelist. i++) {
File delfile = new File(delpath + "\\" + filelist[i]);
if (!delfile.isDirectory()) {
System.out.println("path=" + delfile.getPath());
System.out.println("absolutepath="
+ delfile.getAbsolutePath());
System.out.println("name=" + delfile.getName());
delfile.delete();
System.out.println("删除文件成功");
} else if (delfile.isDirectory()) {
deletefile(delpath + "\\" + filelist[i]);
file.delete();
} catch (FileNotFoundException e) {
System.out.println("deletefile()
Exception:" + e.getMessage());
public static void main(String[] args) {
readfile("e:/videos");
// deletefile("D:/file");
} catch (FileNotFoundException ex) {
} catch (IOException ex) {
System.out.println("ok");
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具serlvet 如何将从数据库查询得出的数据 导出保存到TXT里? 请高手帮忙!!
20harry2926]
serlvet 如何将从数据库查询得出的数据 导出保存到TXT里? 请高手帮忙!!
20harry2926]
发布时间: 19:49:43
编辑:www.fx114.net
本篇文章主要介绍了"serlvet 如何将从数据库查询得出的数据 导出保存到TXT里? 请高手帮忙!!
20harry2926]",主要涉及到serlvet 如何将从数据库查询得出的数据 导出保存到TXT里? 请高手帮忙!!
20harry2926]方面的内容,对于serlvet 如何将从数据库查询得出的数据 导出保存到TXT里? 请高手帮忙!!
20harry2926]感兴趣的同学可以参考一下。
本帖最后由 java2000_net 于
20:51:08 编辑
这个是我写的用&jxl&操作excel表格,保存数据,但要保存到&txt文件里,却不会搞,请高手帮忙~~
JAVA&语言,这里先谢谢了,请高手给出&生成txt文件的代码,
request.setCharacterEncoding(&GBK&);&&&&
&&&&DaoFactory&cloudscapeFactory&=&&DaoFactory.getDaoFactory(DaoFactory.mssql);
CustomerDAO&custDAO&=&cloudscapeFactory.getCustomerDAO();
LinkedHashSet&set&=&new&LinkedHashSet();
OutE62&outE62&=&
String&e_ePo=&request.getParameter(&e_ePo&);
String&e_ePName=&request.getParameter(&e_ePName&);
String&e_eDate=&request.getParameter(&e_eDate&);
response.setCharacterEncoding(&GBK&);
Date&e_eDates&=&
e_eDates&=Date.valueOf(e_eDate);
set=custDAO.selectE62(e_ePo,&e_ePName,&e_eDates);&&//从数据库里查询&;
Iterator&it&=&set.iterator();
&OutputStream&os&=&response.getOutputStream();//取得输出流
response.reset();//&清空输出流&&&
response.setHeader(&Content-disposition&,&&filename=&+e_ePo+&.xls&);//&设定输出文件头&为EXCEL。
&&&&response.setContentType(&application/vnd.ms-charset=GBK&);//&定义输出类型&&&
&&&&&&&&WritableWorkbook&workbook&=&Workbook.createWorkbook(os); &&&&&&
WritableSheet&sheet=workbook.createSheet(&sheet1&,0);&&
Label&labe5=new&Label(5,j,&原始文本信息&);&
sheet.addCell(labe5);&
while&(it.hasNext())&{
outE62&=&(OutE62)&it.next();
String&xinxi&=&outE62.getE_mcDrivceName()+&,&+
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&outE62.getE_mcMacNO()+&,&+
&&&&&&&&&&&&&&&outE62.getE_mcLineName()+&,&+
&&&&&&&&&&&&&&&outE62.getE_mcLinePWD()+&,&+
&&&&&&&&&&&&&&&outE62.getE_mcIPAddRess()+&,&+
&&&&&&&&&&&&&&&outE62.getE_mcUserName()+&,&+
&&&&&&&&&&&&&&&outE62.getE_mcUPassWord()+&,&+
&&&&&&&&&&&&&&&outE62.getE_mcPowerV()+&,&+
&&&&&&&&&&&&&&&outE62.getE_mcPowerA()+&,&+
&&&&&&&&&&&&&&&outE62.getE_snCOMSN();
jxl.write.Label&label5&=&new&jxl.write.Label(5,j,xinxi);&
sheet.addCell(label5);&
workbook.write();&
workbook.close();&
os.close();
}catch(Exception&e)&
e.printStackTrace();
--------------------------------------------------------------------
以下内容为自动编辑的内容,并非楼主的发贴内容,此仅用于显示而已,并无任何其他特殊作用
楼主【harry2926】截止到&20:51:01的历史汇总数据(不包括此帖):
发帖的总数量:13&&&&&&&&&&&&&&&&&&&&&&&发帖的总分数:240&&&&&&&&&&&&&&&&&&&&&&每贴平均分数:18&&&&&&&&&&&&&&&&&&&&&&&
回帖的总数量:12&&&&&&&&&&&&&&&&&&&&&&&得分贴总数量:3&&&&&&&&&&&&&&&&&&&&&&&&回帖的得分率:25%&&&&&&&&&&&&&&&&&&&&&&
结贴的总数量:8&&&&&&&&&&&&&&&&&&&&&&&&结贴的总分数:140&&&&&&&&&&&&&&&&&&&&&&
无满意结贴数:1&&&&&&&&&&&&&&&&&&&&&&&&无满意结贴分:20&&&&&&&&&&&&&&&&&&&&&&&
未结的帖子数:5&&&&&&&&&&&&&&&&&&&&&&&&未结的总分数:100&&&&&&&&&&&&&&&&&&&&&&
结贴的百分比:61.54&%&&&&&&&&&&&&&&&结分的百分比:58.33&%&&&&&&&&&&&&&&&&&&
无满意结贴率:12.50&%&&&&&&&&&&&&&&&无满意结分率:14.29&%&&&&&&&&&&&&&&&&&&
取消马甲机器人,请点这里:http://www.java2000.net/mycsdn/robotStop.jsp?usern=harry2926如果已经得到了数据,那往txt里写入,用流还不行么。。楼上的zhangkai08111&&,可否详细点??import&java.io.BufferedW&
import&java.io.F&
import&java.io.FileW&
import&java.io.IOE&
import&java.io.PrintW&
File&dirFile&=&new&File("c:\\aaaa");&
&&&&&&&&if(!dirFile.exists()){&
&&&&&&&&&&&&dirFile.mkdirs();&
&&&&&&&&}&
&&&&&&&&//查找文件,如果不存在,就创建&
&&&&&&&&File&file&=&new&File("c:\\aaaa\\"+"AAA.txt");&
&&&&&&&&if(!file.exists()){&
&&&&&&&&&&&&try&{&
file.createNewFile();&
}&catch&(IOException&e)&{&
//&TODO&Auto-generated&catch&block&
e.printStackTrace();&
PrintWriter&out=&
out&=&new&PrintWriter(new&BufferedWriter(new&FileWriter("c:\\aaaa\\"+"AAA.txt")));&
//&将数据写入文件&
out.write("aaaaaaaaaaaaaaaaaaaaaaaaaaaaa");&
out.close();&
}&catch&(IOException&e)&{&
//&TODO&Auto-generated&catch&block&
e.printStackTrace();&
把这个试一下,你就知道怎么做了引用&2&楼&harry2926&的回复:楼上的zhangkai08111&&,可否详细点??
现在你得到里面的数据了,那再写入到txt应该不难吧。。
FileOutputStream&fos&=&new&FileOutputStream("E:/123.txt");
用FileOutputStream的write方法,往里写不就行了么。//写文件
&&&&public&static&void&writeFile(String&txtContent,String&txtName){
&&&& //System.out.println(txtName);
&&&& //创建文件
File&f&=&new&File(txtName);
f.createNewFile();
//使用文件流读入并写文件
BufferedWriter&output&=&new&BufferedWriter(new&FileWriter(f));
output.write(txtContent);
output.close();//关闭流
}catch(Exception&e){
e.printStackTrace();
这个方法第一个参数是要写的文本内容
第二个参数是文件全路径
别的自己调整一下就OK了建议楼主看JAVA基础,文件操作.try&
OutputStream&os&=&response.getOutputStream();//取得输出流&
response.reset();//&清空输出流&&
response.setHeader("Content-disposition",&"filename="+e_ePo+".xls");//&设定输出文件头&
response.setContentType("text/&charset=gb2312");&&//定义输出类型,为txt文件。
这里我该怎么去取&os&的内容,并把它写到&文本文件里?
请会的兄弟,给出代码,楼上的几位兄弟给出的方法,我还是每搞懂~~
俺JAVA&是很烂的。
os.close();&
}catch(Exception&e)&
e.printStackTrace();&
}&import&java.io.BufferedR
import&java.io.F
import&java.io.FileNotFoundE
import&java.io.FileR
import&java.io.IOE
public&class&ReadFile&{
public&static&void&main(String&args[])
Ex1&aa=new&Ex1();
File&file=new&File("D:/ioExample/streamFile.txt");
BufferedReader&r=new&BufferedReader(new&FileReader(file));
String&value="";
while(value!=null)
value=r.readLine();
if(value!=null)
System.out.println(value);
catch&(IOException&e)&
//&TODO&Auto-generated&catch&block
e.printStackTrace();
catch&(FileNotFoundException&e)&
e.printStackTrace();
}读文件的&你可以试验下zhangkai08111&你好,我是从数据库中读出数据,用户在客户端&点击“下载”按钮导出数据,生成txt文件,不是直接将文件写到盘符下。请问如何取输出流,并将其写到&TXT文件里?
OutputStream&os&=&response.getOutputStream();//取得输出流&
response.reset();//&清空输出流&&
response.setHeader("Content-disposition",&"filename="+e_ePo+".xls");//&设定输出文件头&
response.setContentType("text/&charset=gb2312");&&//定义输出类型,为txt文件。&
这里我该怎么去取&os&的内容,并把它写到&文本文件里?&
os.close();&
}catch(Exception&e)&
e.printStackTrace();&
}&import&java.io.BufferedOutputS
import&java.io.F
import&java.io.FileNotFoundE
import&java.io.FileOutputS
import&java.io.IOE
import&java.io.OutputS
public&class&WriteFile&
static&FromKeybroad&fk=new&FromKeybroad();
& static&String&s=fk.FromKey();
public&static&void&main(String&args[])
File&fileDirectory=new&File("D:/ioExample");//首先定义一个文件夹文件对象
if(!fileDirectory.exists())//判断是否存在如果不存在就去创建
fileDirectory.mkdirs();
File&streamFile=new&File(fileDirectory,"streamFile.txt");//定义一个存放字节流数据的文件
if(!streamFile.exists())//判断是否存在如果不存在就去创建
streamFile.createNewFile();
catch&(IOException&e)&{
//&TODO&Auto-generated&catch&block
e.printStackTrace();
OutputStream&output=new&BufferedOutputStream(new&FileOutputStream(streamFile));//生成一个代有缓冲区的文件输出流
byte&data[]=s.getBytes();//将字符串数据转换称字节数据因为咱们生成的是字节输出流
output.write(data);//写数据
System.out.println("数据写入.....");
catch&(IOException&e)
e.printStackTrace();
output.close();//关闭流
System.out.println("关闭流");
catch&(IOException&e)&
e.printStackTrace();
catch&(FileNotFoundException&e)
e.printStackTrace();
System.out.print("数据成功写入文件,完整路径为:"+streamFile);
}写入文件请文&dongqdonglin&&,
static&FromKeybroad&fk=new&FromKeybroad();
&static&String&s=fk.FromKey();
其中&FromKeybroad&报错,它是哪里来的&?
我要是不是吧&txt文件写到&盘符下,而是利用:
response.setHeader("Content-disposition",&"filename="+e_ePo+".txt)&
response.setContentType("text/&charset=gb2312");&//定义输出类型&&
让用户下载&到客户端,
在申明一次,不是直接写入磁盘,是让用户在客户端下载txt文件。&ServletOutputStream&out&=&response()
&&&&.getOutputStream();
&&response().setContentType("application/txt");
&&appContext.getResponse().setHeader("Content-disposition",
&&&&"&"&+&"filename=temp.txt");
&&BufferedInputStream&bis&=&
&&BufferedOutputStream&bos&=&
&&&FileInputStream&fin&=&new&FileInputStream(
&&&&&fileName);
&&&bis&=&new&BufferedInputStream(fin);
&&&bos&=&new&BufferedOutputStream(out);
&&&byte&buff[]&=&new&byte[1024];
&&&int&bytesR
&&&while&(-1&!=&(bytesRead&=&bis.read(buff,&0,&buff.length)))
&&&&bos.write(buff,&0,&bytesRead);
&&}&catch&(MalformedURLException&e)&{
&&&e.printStackTrace();
&&}&catch&(IOException&e)&{
&&&e.printStackTrace();
&&}&finally&{
&&&if&(bis&!=&null)
&&&&bis.close();
&&&if&(bos&!=&null)
&&&&bos.close();
&&&&}&appContext.getResponse()换成response
以前项目封装了一层学习简单的流读写操作就可以,比EXL简单多了
一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!
二、互相尊重,对自己的言论和行为负责。
本文标题:
本页链接:[Java拾遗三]JavaWeb基础之Servlet - 博客频道 - CSDN.NET
一枝花算不算浪漫的专栏
享受coding~
Servlet&&& 1,servlet介绍&&&&&&& servlet是一项动态web资源开发技术.&&&&&&& 运行在服务器端.&&&&&&& 作用:处理业务逻辑,生成动态的内容,返回给浏览器.&&&&&&& 本质就是一个类&&&& servlet的入门&&&&&&& 1.编写servlet(类)--- 继承HttpServlet&&&&&&& 2.编写关系--- web.xml(在WEB-INF下)&&&&&&& 3.访问:&&&&&&&&&&& 路径:&&& servlet的体系结构及其常见api&&&&&&& Servlet-- 接口&&&&&&&&&&& |&&&&&&&&&&& |&&&&&&& GenericServlet---(抽象类)&&&&&&&&&&& |&&&&&&&&&&& |&&&&&&& HttpServlet--(抽象类)&&&&&&& &&&&&&& 常用的方法:&&&&&&&&&&& servlet的常用方法:&&&&&&&&&&&&&&& void init(ServletConfig):初始化方法&&&&&&&&&&&&&&& void service(ServletRequest,ServletResponse):服务--处理业务逻辑&&&&&&&&&&&&&&& void destroy():销毁方法&&&&&&&&&&&&&&& &&&&&&&&&&&&&&& ServletConfig getServletConfig():返回一个servlet的配置对象&&&&&&&&&&&&&&& String getServletInfo() :返回是servlet一些信息,比如作者 版本&&&&&&&&&&& &&&&&&&&&&& GenericServlet的常用方法:&&&&&&&&&&&&&&& 实现了除了service方法之外的所有方法&&&&&&&&&&&&&&& init():自己重写init方法&&&&&&&&&&& HttpServlet的常用方法:&&&&&&&&&&&&&&& service(HttpServletRequest,HttpServletResponse):服务--处理业务逻辑&&&&&&&&&&&&&&& doGet(HttpServletRequest,HttpServletResponse):处理get请求的&&&&&&&&&&&&&&& doPost(HttpServletRequest,HttpServletResponse):处理post请求的& & 代码示例:
1 public class HelloWorldServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("hello world servlet");
HelloServlet.java
&servlet-mapping&
&servlet-name&HelloWroldServlet&/servlet-name&
&url-pattern&/helloWorld&/url-pattern&
&/servlet-mapping&
&servlet-name&LifeServlet&/servlet-name&
&servlet-class&cn.augmentum.b_life.LifeServlet&/servlet-class&
&/servlet&& & &
& & 2,servlet生命周期:&&&&&&
生命周期:什么时候来的,什么时候走的.&&&&&&&&&&& void init(ServletConfig):初始化方法&&&&&&&&&&&&&&&& * 执行时间:默认情况来说,第一次的请求的时候执行&&&&&&&&&&&&&&&& * 执行次数:一次&&&&&&&&&&&&&&&& * 执行者:tomcat&&&&&&&&&&& void service(ServletRequest,ServletResponse):服务--处理业务逻辑&&&&&&&&&&&&&&& * 执行时间:有请求就执行&&&&&&&&&&&&&&& * 执行次数:请求一次,执行一次&&&&&&&&&&&&&&& * 执行者:tomcat&&&&&&&&&&& void destroy():销毁方法&&& &&&&&&&&&&&&&&& * 执行时间:服务器正常关闭的时候执行&&&&&&&&&&&&&&& * 执行次数:一次&&&&&&&&&&&&&&& * 执行者:tomcat&&&&&&& servlet是单实例多线程的&&&&&&&&&&& 默认的情况下是第一次访问的时候创建(有服务器创建),每出现一次请求,创建一个线程,用来处理请求,&&&&&&&&&&& 直到服务器正常关闭或者项目移除的时候servlet销毁&&
url-pattern编写&&&&&&& 1.完全匹配,----(servlet最常用的)以"/"开头&&&&&&&&&&& 例如:/a/b/c/hello&&&&&&& 2.目录匹配 以"/"开头,以"*"结尾(filter常用的)&&&&&&&&&&& 例如:/a/*&&&&&&& 3.后缀名匹配 以"*"开头& &&&&&&&&&&& 例如:& *.do&& *.jsp&&&&&&& &&&&&&& 优先级:&&&&&&&&&&& 完全匹配&目录匹配&后缀名匹配&&&&&&& &&&&&&& 有如下的一些映射关系:&&&&&&&&&&& Servlet1 映射到 /abc/* &&&&&&&&&&& Servlet2 映射到 /*&&&&&&&&&&& Servlet3 映射到 /abc &&&&&&&&&&& Servlet4 映射到 *.do &&&&&&& 问题:&&&&&&&&&&& 当请求URL为&/abc/a.html&,&/abc/*&和&/*&都匹配,哪个servlet响应&&&&&&&&&&&&&&& Servlet引擎将调用Servlet1。&&&&&&&&&&& 当请求URL为&/abc&时,&/abc/*&和&/abc&都匹配,哪个servlet响应&&&&&&&&&&&&&&& Servlet引擎将调用Servlet3。&&&&&&&&&&& 当请求URL为&/abc/a.do&时,&/abc/*&和&*.do&都匹配,哪个servlet响应&&&&&&&&&&&&&&& Servlet引擎将调用Servlet1。&&&&&&&&&&& 当请求URL为&/a.do&时,&/*&和&*.do&都匹配,哪个servlet响应&&&&&&&&&&&&&&& Servlet引擎将调用Servlet2.&&&&&&&&&&& 当请求URL为&/xxx/yyy/a.do&时,&/*&和&*.do&都匹配,哪个servlet响应&&&&&&&&&&&&&&& Servlet引擎将调用Servlet2。&&&&&&&& tomcat的defalutservlet处理别的servlet处理不了的请求.&&
load-on-startup&&&&&&& 在servlet标签下&&&&&&& 改变servlet初始化时机.&&&&&&& 若值&=0的时候,servlet会随着服务器的启动而创建.&&&&&&& 值越小,优先级越高&&& 浏览器的路径编写:&&&&&&& 1.浏览器直接输入&&&&&&& 2.a标签&&&&&&& 3.location.href&&&&&&& 4.表单提交&&&&&&& &&&&&&& 路径的写法:&&&&&&&&&&& 1.绝对路径&&&&&&&&&&&&&&& 带协议的绝对路径--一般访问站外资源的时候用&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&& 不带协议的绝对路径--站内资源&&&&&&&&&&&&&&&&&&& /servletDemo/helloWorld&&&&&&&&&&& 2.相对路径&&&&&&&&&&&&&&& ./(路径) 和 ../&&&&&&&&&&&&&&& 八字方针&&&&&&&&&&&&&&&&&&& 当前路径& &&& index.html&&&&&&&&&&&&&&&&&&& 访问路径& &&& demoa&&&&&&&&&&&&&&&&&&& &&&&&&&&&&&&&&&&&&& 当前路径& && a/b/c&&& ../../demoa&&&&&&&&&&&&&&&&&&& 访问路径& && demoa&&&&&&& 以后使用的是绝对路径(一般使用的是不带协议的绝对路径)&&&&&&& 3,ServletConfig&&& 他是当前servlet的配置对象.&&& 获取方式:&&&&&&& ServletConfig config=this.getServletConfig();&&& 作用:&&&&&&& 1.可以获取到当前servlet初始化参数&&&&&&& 2.可以获得全局管理者&&& 常用方法:&&&&&&& String getServletName():获取当前servlet的名称 --指的是web.xml中servlet名字&&&&&&& String getInitParameter(name):获取指定的参数&&&&&&& Enumeration getInitParameterNames():获取全部初始化参数名称&&&&&&& &&&&&&& ServletContext getServletContext():获取全局管理者&&& 当servlet初始化的时候,执行了init(ServletConfig config),就把创建好的servletConfig传给了servlet&&&&&&& 由tomcat创建
1 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
ServletConfig conf=this.getServletConfig();
//获取当前servlet名字
String name=conf.getServletName();
System.out.println(name);
//获取名字为 "姓名"的参数值
String value = conf.getInitParameter("姓名");
System.out.println(value);
//获取全部参数名称
Enumeration&String& names=conf.getInitParameterNames();
while(names.hasMoreElements()){
String name_=names.nextElement();
System.out.println(name_+":"+conf.getInitParameter(name_));
& & &4,ServletContext&&& 全局管理者.&&& 每个应用在tomcat启动的时候,就会创建一个servletcontext对象,这个对象可以获取到当前应用的所有信息,实现资源共享.&&& 本质servletcontext就是对当前应用的一个引用.&&& 作用:&&&&&&& 1.实现资源共享&&&&&&& 2.获取全局初始化参数.&&&&&&& 3.获取资源.&&& 怎么获取:&&&&&&& this.getServletConfig().getServletContext():&&&&&&& getServletContext()也可以获取&&& 常见的方法:&&&&&&& String getInitparameter(name);获取指定的参数&&&&&&& Enumeration getInitParameterNames():获取全部的参数名称&&&&&&&&&&& 参数&&& &&&&&&&&&&&&&&& &context-param&&&&&&&&&&&&&&&&&&&& &param-name&&&&&&&&&&&&&&&&&&&& &param-value&&&&&&&&&&&&&&&&&&&& &&&&&&& String getRealPath(path):返回相应文件在tomcat的实际路径&&&&&&&&&&& 例如:D:\JavaTools\apache-tomcat-7.0.53\webapps\servletDemo\&&&&&&& InputStream getResourceAsStream(String path) :以流的形式返回对应的文件.&&&&&&& &&&&&&& String getMimeType(String file)&& 可以获取一个文件的mimeType类型. 例如 text/html&&&&&&& URL getResource(String path) 它返回的是一个资源的URL&&&&&&& 例如:& localhost/day09/a.html&&& 域对象:&&&&&&& 把他看成一个map,&&&&&&& xxxAttribute()&&&&&&&&&&& setAttribute(String,Object):添加&&&&&&&&&&& Object getAttribute(string):获取&&&&&&&&&&& removeAttribute(string):移除示例代码:
1 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//首先获取ServletContext对象
ServletContext context=this.getServletContext();
String url=context.getInitParameter("url");
//System.out.println(url);
//获取全部的全局初始化参数
Enumeration&String& paramNames=context.getInitParameterNames();
while(paramNames.hasMoreElements()){
String name=paramNames.nextElement();
///System.out.println(name+":"+context.getInitParameter(name));
//返回 "/"的路径
//String path=context.getRealPath("/");
//String path = context.getRealPath("/5.txt"); // 错误的
//System.out.println(path);
/*InputStream in = context.getResourceAsStream("/WEB-INF/classes/cn/itcast/e_servletcontext/5.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String readLine = reader.readLine();
System.out.println(readLine);*/
//获取index.htmlmime类型
String type = context.getMimeType("/a.html");
//System.out.println(type);
URL url_ = context.getResource("/a.html");
System.out.println(url_.getPath());
5,classpath&&& 获取字节码文件的路径.&&& 通过字节码文件获取&&&&&&& 当前类.class.getResource("/").getPath():返回classes的目录&&&&&&&&&&& D:/JavaTools/apache-tomcat-7.0.53/webapps/day09/WEB-INF/classes/&&&&&&& 当前类.class.getResource("").getPath():返回当前类的字节码文件所在的目录&&&&&&&&&&& D:/JavaTools/apache-tomcat-7.0.53/webapps/day09/WEB-INF/classes/cn/itcast/h_classpath/&&&&&&&&&&& &&& 通过类加载器获取文件路径&&&&&&& 当前类.class.getClassLoader().getResource("/").getPath():返回classes的目录&&&&&&&&&&& D:/JavaTools/apache-tomcat-7.0.53/webapps/day09/WEB-INF/classes/&&&&&&& 当前类.class.getClassLoader().getResource().getPath():返回classes的目录&&&&&&&&&&& D:/JavaTools/apache-tomcat-7.0.53/webapps/day09/WEB-INF/classes/示例代码:
1 public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//String path1 = PathServlet.class.getResource("/").getPath();
// D:/JavaTools/apache-tomcat-7.0.53/webapps/day09/WEB-INF/classes/
//String path2 = PathServlet.class.getResource("").getPath();
// D:/JavaTools/apache-tomcat-7.0.53/webapps/day09/WEB-INF/classes/cn/augmentum/h_classpath/
// System.out.println(path1);
// System.out.println(path2);
//String path3 = PathServlet.class.getClassLoader().getResource("/").getPath();
//String path4 = PathServlet.class.getClassLoader().getResource("").getPath();
//System.out.println(path3);
//System.out.println(path4);
tomcat路径
/WEB-INF/classes/1.txt
lei.class.getResource("/").getpath()
context.getRealPath
/WEB-INF/3.txt
context.getRealPath
cn.augmentum.h_classpath
/WEB-INF/classes/cn/augmentum/h_classpath/4.txt
lei.class.getResource("").getpath()
ServletContext context=this.getServletContext();
String path1 = PathServlet.class.getResource("/1.txt").getPath();
String path2 = context.getRealPath("/2.txt");
String path3 = context.getRealPath("/WEB-INF/3.txt");
String path4 = PathServlet.class.getResource("4.txt").getPath();
/*System.out.println(path1);
System.out.println(path2);
System.out.println(path3);
System.out.println(path4);*/
readFile(path1);
readFile(path2);
readFile(path3);
readFile(path4);
小demo: 当访问index.html中的 链接则通过CountServlet计数, 每访问一次则count加1, 然后通过ShowServlet展示到控制台:
1 public class CountServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//访问计数
//首先获取context对象
ServletContext context=this.getServletContext();
//请求一次,context取出访问次数
Integer count=(Integer) context.getAttribute("count");
//次数+1,放入context中
if (count==null) {
context.setAttribute("count", 1);
context.setAttribute("count", ++count);
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
CountServlet.java
1 public class ShowServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//首先获取context
ServletContext context=this.getServletContext();
Integer count=(Integer) context.getAttribute("count");
System.out.println("访问的次数为:"+(count==null?0:count));
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
ShowServlet.java
&a href="/servletDemo/count"&显示次数&/a&&br/&
&a href="/servletDemo/show"&展示结果&/a&&br/&
index.html
1 &servlet&
&servlet-name&CountServlet&/servlet-name&
&servlet-class&cn.augmentum.showcount.CountServlet&/servlet-class&
4 &/servlet&
5 &servlet&
&servlet-name&ShowServlet&/servlet-name&
&servlet-class&cn.augmentum.showcount.ShowServlet&/servlet-class&
8 &/servlet&
9 &servlet-mapping&
&servlet-name&CountServlet&/servlet-name&
&url-pattern&/count&/url-pattern&
12 &/servlet-mapping&
13 &servlet-mapping&
&servlet-name&ShowServlet&/servlet-name&
&url-pattern&/show&/url-pattern&
16 &/servlet-mapping&
排名:千里之外
(3)(1)(2)(0)(4)(1)(1)(0)}

我要回帖

更多关于 std string replace 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信