- 浏览: 456506 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (354)
- 面向对象分析设计/系统架构 (12)
- Mysql/Orcal11g (13)
- JSP/Java//Python/Xharbour (66)
- 软件测试 (21)
- 信息安全小知识 (1)
- Android (5)
- IT生活/哲学/兵法 (23)
- 软件工程/UML/需求分析学习与实践 (6)
- 操作系统/网络/组成原理 (9)
- 持续集成Maven/Hudson/自动化测试 (9)
- eBay /Paypal developer (10)
- Hadoop/HBase/Solr (0)
- 重构分析及其思考 (2)
- 企业架构 (7)
- 分析模式/设计模式 (4)
- SSH学习笔记 (1)
- Quartz及其JWatch监控 (0)
- Linux服务器 (0)
- ExtJs学习笔记 (1)
- 重读java编程思想 (3)
- ESB/SOA/WebServices (0)
- SpringMVC/Struts/Hibernate/Spring (7)
- Xharbour/Pelles C/ SQLite3 (0)
- Magento 电商 (1)
- Object C (1)
- note/redis (0)
- SpringBoot (0)
最新评论
-
snow8261:
太粗略了。
企业架构之数据架构 -
haithink:
面试成功没?
JVM 加载Class文件的原理及其机制 -
feisi0003731843:
不好意思我没有重启,重启后好多了,可有的地方回放还是不成功的。 ...
Selenium IDE测试ExtJs一种测试解决办法 -
feisi0003731843:
这个好像不行吧,我试过了不好使啊。还是用id来做的。不能用啊。 ...
Selenium IDE测试ExtJs一种测试解决办法 -
yuchensuifeng:
您好,静态页面是可以的,但是,我指定error-page为js ...
JSP创建错误处理页面
由于JSP能使用Java的IO系统,所以在JSP中对文件的操作和一般Java程序没有什么大的区别。
操作文件主要有两种类型,一种是读取内容,另一种是写入内容或者更改文件的属性。
1. 读取文件的内容
在读取文件的时,可以有两种选择方式,一种是通过ServletContext读取,另一种是直接使用java.io.FileReader等对象。前者只能读取Servlet上下文中的文件,后者可以读取任何位置的文件。
1. 使用ServletContext
这种方式只能获得Servlet上下文之内的资源。例如
使用ServletContext读取文件(readFile.jsp)
在ServletContext接口中,定义一个java.io.InputStream getResourceAsStream(java.lang.String path)方法来访问给定的资源。这里的path参数必须以"/"开始。
这个方法和Java.lang.Class.getResourceAsStream方法不同,后者使用ClassLoader获得指定的资源。
在上面的代码中使用InputStream对象,如果在读取后不对字符进行重新编码,那么对中文讲出现乱码的问题。而且没有使用缓冲的输入流,它的效率较低。
下面看看使用带缓冲的输入流读取文件资源
以这种方式不仅速度快,占用系统资源少,而且不会出现中文乱码问题。
2 使用FileReader
可以在JSP页面中使用FileReader和FileInputStream等类读取文件的内容。由于FileReader具有比FileInputStream更好的性能,在这里使用FileReader读取文件的内容。例如:
3. 写入内容到文件
通过FileWrite对象或者FileOutputStream把内容输入到文件中。
以下是writerFile.jsp页面
但是每次写入新的内容时,会把原来的内容删除,如果想不删除,那么改变以下的代码
PrintWriter writer = new PrintWriter(new BufferWriter(new FileWriter("c:\\foo.out",true)))
就是在FileWriter的构造方法中增加true关键字,就能将新写入的内容追加到原来的文件后面。
操作文件主要有两种类型,一种是读取内容,另一种是写入内容或者更改文件的属性。
1. 读取文件的内容
在读取文件的时,可以有两种选择方式,一种是通过ServletContext读取,另一种是直接使用java.io.FileReader等对象。前者只能读取Servlet上下文中的文件,后者可以读取任何位置的文件。
1. 使用ServletContext
这种方式只能获得Servlet上下文之内的资源。例如
使用ServletContext读取文件(readFile.jsp)
<%@ page contentType="text/html;charset=gb2312" import="java.io.*"%> <% try{ //使用ServletContext装入文件资源 InputStream in = getServletContext().getResourceAsStream("/file.txt"); String file = ""; int temp = 0; while( (temp = in.read()) != -1) { file +=(char)temp; } //关闭输入流 in.close(); out.println(new String(file.getBytes("iso-8859-1"))); out.flush(); } catch(Exception e){ out.println(e); e.printStackTrace(); } %>
在ServletContext接口中,定义一个java.io.InputStream getResourceAsStream(java.lang.String path)方法来访问给定的资源。这里的path参数必须以"/"开始。
这个方法和Java.lang.Class.getResourceAsStream方法不同,后者使用ClassLoader获得指定的资源。
在上面的代码中使用InputStream对象,如果在读取后不对字符进行重新编码,那么对中文讲出现乱码的问题。而且没有使用缓冲的输入流,它的效率较低。
下面看看使用带缓冲的输入流读取文件资源
<%@ page contentType="text/html;charset=gb2312" import="java.io.*"%> <% try{ //使用ServletContext装入文件资源 InputStream in = getServletContext().getResourceAsStream("/file.txt"); String file = ""; int temp = ""; BufferedReader buffer = new BufferReader( new InputStreamReader(new BufferedInputStream(in))); while( (temp = buffer.readLine()) != null) { file += temp; } buffer.close(); in.close(); out.println(file); out.flush(); } catch(Exception e){ out.println(e); e.printStackTrace(); } %>
以这种方式不仅速度快,占用系统资源少,而且不会出现中文乱码问题。
2 使用FileReader
可以在JSP页面中使用FileReader和FileInputStream等类读取文件的内容。由于FileReader具有比FileInputStream更好的性能,在这里使用FileReader读取文件的内容。例如:
<%@ page contentType="text/html;charset=gb2312" import="java.io.*" buffer="64kb"%> <% try{ BufferReader in = new BufferedReader(new FileReader("c:\\UserSession.java")); String file = ""; String temp = ""; while((temp = in.readLine()) != null){ file += temp; } in.close(); out.println(file); out.flush(); } catch(Exception e){ out.println(e); e.printStackTrace(); } %>
3. 写入内容到文件
通过FileWrite对象或者FileOutputStream把内容输入到文件中。
以下是writerFile.jsp页面
<%@ page contentType="text/html;charset=gb2312" import="java.io.*" %> <html> <body> <% request.setCharacterEncoding( "gb2312" ); String content = request.getParameter( "content" ); %> <% try{ PrintWriter writer = new PrintWriter(new BufferWriter(new FileWriter( "c:\\foo.out" ))); writer.write(content); writer.close(); out.println("已经把内容写到c:\\foo.out"); } catch(Exception e){ out.println(e); e.printStackTrace(); } %> <form action="writerFile.jsp" method=post> <textarea name=content cols=20 row=5></textarea><br> <input type = submit value=提交> </form> </body> </html>
但是每次写入新的内容时,会把原来的内容删除,如果想不删除,那么改变以下的代码
PrintWriter writer = new PrintWriter(new BufferWriter(new FileWriter("c:\\foo.out",true)))
就是在FileWriter的构造方法中增加true关键字,就能将新写入的内容追加到原来的文件后面。
发表评论
-
java实现读取文件下所有的excel文件
2012-08-10 09:30 2084最近处理一个压缩包,里面有几百上千个excel文件。本来 ... -
在firefox浏览器下出现如果引用外部连接不存在会隐藏红叉
2012-07-23 15:38 993在firefox下引用出错的一些图片会隐藏红叉。而在IE下 ... -
java 字符替换的一些问题值得记录下
2011-09-30 16:40 883最近在处理一些字符串的替换中发生的一些问题。 最近需要临 ... -
ExtJs学习之弹出框,提示框,输入框等框
2011-06-23 22:13 93781.ExtJs之消息框: 语法:Ext.MessageB ... -
FreeMarker学习之概念
2010-08-04 10:12 860FreeMarker概述: 引用 1. ... -
HTML标准属性
2010-07-03 20:35 753核心属性(Core attributes) 以下标签 ... -
HTML标签
2010-07-03 20:14 1004HTML 4.01 / XHTML 1.0 参考手册 按字母 ... -
HTML基础
2010-07-03 00:54 771基于Web前端技术是有HTML静态语言向现在的JaveSc ... -
Struts2的开发规范和技巧
2010-05-28 14:56 1237基于Struts2的开发,如果没有足够的经验和规范做支撑,并不 ... -
第一次的Struts2的一个异常记录
2010-05-28 14:22 1048在配置正确struts.xml、web.xml、Action类 ... -
Java处理Excel全解一
2010-05-25 10:00 2189在获取客户需求的时候 ... -
Java EE 6 规范之平台概述
2010-05-22 21:28 2211JavaTM平台企业版(Java EETM)的概述 体系结构 ... -
Python3入门学习
2010-05-14 14:51 2237在学习一门计算机语言的时候,首先接触的入门程序基本上都是& ... -
Python3操作文件,目录和路径
2010-05-14 11:48 35071.遍历文件夹和文件 ... -
内存溢出
2010-04-22 14:23 1424java SE应用程序共同的问 ... -
JPA之ManyToMany的处理
2010-04-18 14:17 4512在处理关系中,最为麻烦的可能是多对多的关系处理,因为多对多 ... -
JPA之OneToOne关系处理
2010-04-18 14:05 3941在很早学习关系数据库的时候学过一对多,多对一,一对一,多对多的 ... -
JPA之OneToMany和ManyToOne处理
2010-04-18 13:52 18927前面介绍和总结了JPA ... -
JPA学习之二(入门篇)
2010-04-16 10:48 3761简单总结下,JPA的入门。在学习JPA的时候运用参考Hib ... -
JPA2.0的学习一
2010-04-15 17:18 8634Java EE 5平台引入了Java ...
相关推荐
本文将深入探讨“jsp操作文件”的主题,旨在帮助初学者更好地理解和掌握如何在JSP中进行文件操作。 一、JSP概述 JSP是Java平台的一部分,它结合了HTML和Java代码,使得开发人员可以方便地创建动态Web应用。在JSP中...
JSP中的文件操作,也是jsp的的基础知识
### JSP对文件的操作知识点详解 #### 一、概述 JSP(JavaServer Pages)是一种基于Java技术的服务器端脚本语言,它允许在HTML页面中嵌入Java代码,从而实现动态网页的功能。通过JSP可以很方便地进行文件操作,如...
在Java服务器页面(JSP)技术中,文件操作是一个关键的方面,它允许开发者读取、写入、创建和管理服务器上的文件。本教程将深入探讨JSP中的文件操作及其应用,帮助你理解和掌握相关技能。 一、JSP概述 JSP是Java...
JSP文件操作
在Java Web开发中,JSP(JavaServer Pages)常常用于创建动态网页,配合Servlet处理用户交互,例如文件的上传和下载。本项目专注于解决在JSP中实现文件上传和下载时遇到的一些常见问题,特别是针对中文文件名的处理...
总之,基于JSP的文件上传下载是Java Web开发中的基础技能,它结合了HTML、JavaScript、Servlet和JavaBean等技术,通过合理的服务器端处理和客户端交互,实现了用户友好的文件操作功能。理解并掌握这部分知识,对于...
在Java中,`java.io.File`类可以用来创建和操作文件。 5. **文件名处理**: 为了避免文件名冲突,通常会生成一个唯一的文件名或添加时间戳。还可以检查文件类型,确保只接受安全或指定格式的文件。 6. **错误处理...
在JavaServer Pages (JSP) 中,读取和写入文件是常见的操作,尤其是在构建动态网页时处理用户上传的文件或者存储数据到服务器时。本文将深入探讨如何在JSP中实现这两个功能,并提供实际的代码示例。 一、JSP读文件 ...
根据提供的文件标题、描述、标签以及部分内容,我们可以总结出以下重要的IT知识点,主要涉及JSP技术在文件操作方面的应用。 ### 一、读取文件目录结构 #### 代码解析: 在给定的代码片段中,我们可以看到一个示例...
xml与jsp的交互应用,适合初学者使用,对大多数初学者有一定的帮助。
SmartUpload是一个Java库,它简化了文件上传和下载的操作。在这里,首先创建了一个SmartUpload对象并初始化,然后通过`setContentDisposition(null)`方法设置Content-Disposition为null,防止浏览器尝试预览或打开...
【JSP上传文件Demo】是基于Java服务器页面(JSP)技术实现的一种文件上传功能的示例。在Web开发中,文件上传是一个常见的需求,例如用户上传头像、提交附件等。`SmartUpload`是一个流行的Java库,专门用于处理文件...
在本系统中,"jsp的文件管理系统"利用JSP的特性实现了远程管理Web服务器上的文件,使得管理员无需直接登录到服务器,就能完成文件的上传、下载、删除等操作,极大地提高了工作效率和安全性。 **JSP基础** 1. **...
2. **Servlet**:JSP虽然可以直接编写Java代码,但处理复杂任务如文件操作时,通常会配合Servlet。Servlet是Java的服务器端组件,负责接收并响应HTTP请求。 3. **Commons FileUpload库**:Apache Commons ...
在Java和JSP中,实现文件下载是一项常见的任务,它涉及到服务器与客户端之间的交互,以及对文件流的处理。下面将详细讲解如何使用Java和JSP来实现这一功能。 首先,我们从`downloadtool.jsp`开始,这是一个用户界面...
网上有很多文章都是jspsmart,由于jspsmart直接在内存中操作数据,如果上传大文件或多台计算机上传的话会出错,还有一些方法传得比较慢。 为了方便上传文件,本人写了一个传输文件类。 附有一个显示进度条的例子和...
在Java服务器页面(JSP)开发中,文件操作是一个常见的需求,无论是为了读取配置文件、存储用户上传的数据还是处理其他文件相关的任务。本篇将深入讲解如何在JSP中进行文件读写,并解决中文乱码的问题。我们将重点...