博博jsp教程:第6章对文件的操作(编辑修改稿)内容摘要:
FileOutputStream outFile= new FileOutputStream(e:/,true)。 BufferedOutputStream bufferout=new BufferedOutputStream(outFile)。 (buffer)。 ()。 ()。 } catch(IOException ioe) { (File Write Error!)。 } % /body /html 字符流 前面我们学习了使用字节流读 /写文件 ,但是字节流不能直接操作 Unicode 字符 ,所以 java提供了字符流.由于汉字在文件中占用 2个字节,如果使用字节流读写文件会出现乱码现象,采用字符流就可以避免乱码.在 Unicode字符集中,一个汉字被看作一个字符. 字符流有两个超类,也是两个抽象类:字符输入流(Reader)和字符输出流 (Writer). Reader类是所有字符输入流的父类; Writer类是所有字符输出流的父类。 1. Reader类 下面是对 Reader类的描述 (1). Reader的常用方法 int read() 输入流调用该方法从源中读取一个字符,该方法返回一个参数( 0~65535之间的一个整数, Unicode字符值)。 如果未读出字符就返回 1。 int read(char b[]) 输入流调用该方法从源中读取 字符数组 b中,返回实际读取的字符数目。 如果到达文件的末尾,则返回 1。 int read(char b[],int off , int len) 输入流调用该方法从源中读取 len个字符并存放到字符数组 b中,返回实际读取的字符数目。 如果到达文件的末尾,则返回 1。 其中, off参数表明,从数组 b的 off位移处开始存放数据。 void close() 输入流调用该方法关闭输入流 long skip(long numBytes)输入流调用该方法跳过 numBytes个字符,并返回实际跳过的字符数目 (2) . Reader的类层次 Reader类的层次结构图如图 64所示。 Reader InputStreamReader FilterReader BufferedReader PipedReader CharArrayReader StringReader FileReader LineNumberReader PushbackReader 图 64 Reader类层次 2. Writer类 下面是对 Writer类的描述。 (1). Writer的常用方法 void write( int n)向输出流写入一个 Unicode字符值 (数字 ) void write(char b[])向输出流写入一个字符数组 void write(char b[],int off, int length)从给定字符数组中其实与偏移量 off处取 len个字符写到输出流。 void write(String str) 向输出流写入一个字符串 void close()关闭输出流 (2) Writer的类层次 Writer类的层次结构图如图 65所示。 Writer OutputStreamWriter FilterWriter BufferedWriter PipedWriter CharArrayWriter StringWriter PrintWriter FileWriter 图 65 Writer类层次 字符流有多个子类,能直接对文件进行读或写的子类有: 文件字符输入流 (FileReader)和文件字符输出流(FileWriter).下面是它们的构造方法。 1. FileReader类的构造方法: public FileReader(File file) throws public FileReader(String name) throws 其中, name为文件名, file为 File对象,即可以用文件名或 File对象构造文件输入流对象。 通过文件输入流对象读文件。 2. FileWriter类的构造方法: public FileWriter(File file) throws IOException public FileWriter(String name) throws IOException public FileWriter(File file, boolean append) throws IOException public FileWriter(String name, boolean append) throws IOException 其中, name为文件名, file为 File对象, append表示文件的写入方式。 append的值为 false时,为重写方式,即要写入的内容从文件开头写入,覆盖以前的文件内容;当append的值为 true时,为添加方式,即要写入的内容添加到文件的尾部。 append的默认值是 false。 可以以文件名或File对象构造文件输出流对象,通过文件输出流对象写文件。 FileReader读文件 [例子 ]在客户端显示文件 e:/。 程序结构: 程序名: 程序算法: 1. 以文件名“ e:/”为参数,构造文件对 象:f 2. 以文件对象 f为参数,构造字符输入流: in 3. 每次从 in中读取 n个字符 ,保存在字符数组 b中 4. n等于 1时,结束循环,否则,把数组 b以字符串的方式输出到客户端,重复步骤 3。 程序代码: %@ page contentType=text/html。 charset=GB2312 % %@ page import=.*% HTML BODY % File f=new File(e:/)。 try { FileReader in=new FileReader(f)。 String str=null。 char b[]=new char[50]。 int n=0。 while((n=(b))!=1) { str=new String(b,0,n)。 (str)。 } ()。 } catch(IOException e) { } % /BODY /HTML 用类 FileWriter写文件 [例子 ] 把从客户端输入的文本,添加到服务器的e:/。 程序结构: 程序名: 程序算法: 1. 创建一个表单,包含一个文本框,文本框名 是 boy 2. 获取文本框数据,保存在字符串 str中 3. 将 str进行编码 4. 以“ e:/”为参数,创建一个输出 流 :wf 5. 将 str写入到输出流 wf中。 程序代码: %@ page contentType=text/html。 charset=GB2312 % %@ page import=.*% HTML BODY bgcolor=cyanFONT size=3 FORM action= method=post name=form INPUT type=text name=boy INPUT TYPE=submit value=保存 name=submit /FORM % String str=(boy)。 if(str==null) str=。 byte b[]=(ISO88591)。 str=new String(b)。 try { FileWriter wf=new FileWriter(e:/,true)。 (str)。 //将字符串写入输出流指向的文件 ()。 //关闭输出流 (将数据存入到文件 :e:/ )。 } catch(IOException ioe) { (File Write Error!)。 } % /body /html 字符缓存流 由于使用 FileReader类和 FileWriter类读写文件效率不高,在实际应用中,常常使用字符缓存流来读写文件。 字符缓存流有:字符缓存输入流 (BufferedReader)和字符缓存输出流(BufferedWriter)。 常用构造方法 1. BufferedReader类的构造方法 BufferedReader (Reader in ) BufferedReader (Reader in int size) 2. BufferedWriter类的构造方法 BufferedWriter (Writer out ) BufferedWriter (Writer out int size) 其中, in是字符输入流对象, out是字符输出流对象, size是缓冲区大小。 实际应用中,为了提高文件读写的效率, FileReader流经常和 BufferedReader流配合使用; FileWriter流经常和BufferedWriter流配合使用。 下面是构造字符缓存流的方法: : 假设需要使用字符缓存流读文件 ,则需要对文件 进行两次封装: 第一步:构造文件字符输入流 FileReader in=new FileReader () 第二步:构造字符缓存输入流 BufferedReader inbuffer= BufferedReader (in) 这样,我们就可以让 inbuffer调用 readLine()方法读取文件内容, inbuffer读取文件的过程中,会进行缓存处理,提高读取的效率. : 假设需要使用字符缓存流写文件 ,则需要对文件 进行两次封装: 第一步:构造文件字符输出流 FileWriter out=new FileWriter () 第二步:构造缓存输出流 BufferedWriter outbuffer= BufferedWriter (out) 这样, 我们就可以让 outbuffer调用 write()方法向文件写入内容时会进行缓存处理,提高写入的效率。 需要注意的是,写入完毕后,须调用 flush()方法将缓存中的数据存入文件。 用类 BufferedRdader读文件 [例子 ] 用字符缓存读文件 e:/,并输出到客户端。 程序结构: 程序名: 程序算法: 1.以文件名 e:/为参数,构造文件对象: f 2. 以文件对象 f为参数,构造输入流: in 3. 以输入流 in为参数,构造缓存输入流: bufferin 4. 每次从 bufferin中读取一行数据,保存在字符串 str中 5. str等于 null时结束循环,否则,把字符串 str输出到 客户端,重复步骤 4。 程序代码: %@ page contentType=text/html。 charset=GB2312 % %@ page import=.*% HTML BODY % File f=new File(e:/)。 try { FileRea。博博jsp教程:第6章对文件的操作(编辑修改稿)
相关推荐
下面是程序员编写 Servler类时的一般步骤: (1).扩展 HttpServlet类 (2).覆盖 HttpServlet类中的三个方法 service()、doPost()或 doGet(),将要处理的逻辑代码写在以上三个方法的任一个中。 Servlet模块执行service()方法时,会自动调用 doPost()或doGet()这两个方法,实现 servlet逻辑处理功能。
人力资源管理(岗位体系)工艺室 - 1 艺室上级部门:技术科下属岗位:工艺员部门本职:工艺设计。 主要职能:(1) 向下属工艺员布置工艺设计任务。 (2) 制定工艺室的各项工作计划报批并执行。 (3) 组织有关车间技术人员对较重要的工艺流程进行会签。 (4) 解决编制工艺流程中的技术难题。 (5) 协助全面质量管理部门对工艺纪律行为检查、评比和汇总。 (6) 督促工艺规程在生产前的及时下发。
passive to active • Look for buried verbs hidden in words that end in ion – A careful inspection of the esophageal mucosa is performed as the endoscope is withdrawn. – The physician inspects the
对该属性设置的格式如下: “ TYPE。 charset=CHARSET” (需要注意的是分号后面有一空格 ) TYPE的默认值为“ text/html”,字符编码的默认值为 ISO88591。 ( 12) pageEncoding 该属性描述 JSP页面的字符编码,通常默认值为。 ’’ ISO88591’’ ( 13) isELIgnored 该属性用来设置 EL(Expression
的流动 经济计量模型法 政府政策 计算机预测系统 失业率 人员招聘 工作描述 组织应聘人员 阅读简历 面试 作出招聘决策 人员培训 确定培训需求 确定和挑选高质量的培训资源 梳理培训内容 安排培训工作的内在逻辑 提供培训 针对培训效果的反馈 公司雇佣培训人员而非讲师雇佣公司。 培训需求的确定 确定关键经营领域(CBI) 确定CBI的产出
将弹出如图 318 所示的 [Apache Tomcat Setup]对话框,单击按钮,完成 Tomcat安装。 图 318 Tomcat安装完成 [开始 ][程序 ][Apache ][Configure Tomcat],弹出对话框如图 319所示。 单击按钮,启动Tomcat服务器。 图 319 启动 Tomcat 安装完 Tomcat后,下面测试 Tomcat是否安装成功。 打开