Presentation is loading. Please wait.

Presentation is loading. Please wait.

LOGO File 操作. 2 主要内容  1. 操作文件和文件夹 1. 操作文件和文件夹  2. 文件的读写 2. 文件的读写  3. 文件操作应用 3. 文件操作应用.

Similar presentations


Presentation on theme: "LOGO File 操作. 2 主要内容  1. 操作文件和文件夹 1. 操作文件和文件夹  2. 文件的读写 2. 文件的读写  3. 文件操作应用 3. 文件操作应用."— Presentation transcript:

1 LOGO File 操作

2 2 主要内容  1. 操作文件和文件夹 1. 操作文件和文件夹  2. 文件的读写 2. 文件的读写  3. 文件操作应用 3. 文件操作应用

3 3 1. 操作文件和文件夹  1 、获得文件夹的物理路径  在 JSP 中,使用 request 对象的 getRealPath() 方法来获得文件夹的物理路径。  如:   本项目 JSP 文件所在路径为:   在调用 request 对象的 getRealPath() 方法时,使用斜杠 “ / ” 代表本 Web 应用地址。

4 4  2 、创建文件和文件夹  File 类是 Java 中用于文件操作的类,它存 在于包 java.io.File 中。 File 类提供了一些成员函 数来操作文件和文件夹。  利用 File 类的 mkdir() 方法创建文件夹。  使用 createNewFile() 方法创建文件。 String tmp_path = request.getRealPath("/")+“xxgcxy"; File fp1 = new File(tmp_path); fp1.mkdir(); File fp2 = new File(tmp_path,"a.txt"); fp2.createNewFile(); File fp3 = new File(tmp_path,"b.txt"); fp3.createNewFile(); File fp4 = new File(tmp_path,"c.txt"); fp4.createNewFile();

5 5  3 、列出文件夹下的文件和文件夹  File 类的 listFiles() 方法获得指定文件夹 中的所有内容,包括文件夹和文件,并将结果返回到 数组中。  String path = request.getRealPath("/"); String tmp_path = path+“xxgcxy"; File fp1 = new File(tmp_path); File filelist[]=fp1.listFiles();  使用 getName() 方法获得文件夹和文件 的名称。

6 6  例如:  <%  String path = request.getRealPath("/");  String tmp_path = path+“xxgcxy";  File fp1 = new File(tmp_path);  File filelist[]=fp1.listFiles();  %>   文件夹  中有以下文件夹和文件:  <%  for(int i=0; i<filelist.length; i++){  %> 

7 7  4 、删除文件和文件夹  使用 File 类对象的 exists() 方法判断文件和文件 夹是否存在,如果存在,就使用 delete() 方法将其 删除。  5 、取得文件大小  使用 File 类对象的 length() 方法。   <%  String path1 = request.getRealPath("/");  File fp = new File(path1,“index.jsp");  %>  文件 index.jsp 的大小为: 字节 

8 8  6 、判断是文件还是文件夹  使用 File 类对象的 isFile() 方法(返回 True 表 示为文件)和 isDirectory() 方法(返回 True 表示 为文件夹) 。  7 、获得文件属性  4 个 File 类对象的方法: canRead() 方法:判断文件是否可读 canWrite() 方法:判断文件是否可写 isHidden() 方法:判断文件是否为隐藏文件 lastModified() 方法:获得文件的最后修改日期

9 9   <%  String path1 = request.getRealPath("/");  File fp = new File(path1,“index.jsp");  %>  文件 index.jsp 的属性如下:   最后修改日期为: 

10 10 2. 文件的读写  如果编写过一般 Java 应用程序进行文件操作,那 么就很容易掌握本节的内容。因为 JSP 也是利用 Java 的 I/O 机制操作文件,与一般 Java 程序没有什 么大的区别。  Java 所有的 I/O 机制都是基于数据流的, 这些数据流表示了字符或者字节数据的流动序列。 Java 的 I/O 流提供了读写数据的标准方法。 Java.io 是大多数面向数据流的输入 / 输出类的主要 软件包。进行文件操作时,要将这个软件包包含进来 以供使用。

11 11  1 、读取文件内容  一般说来,有两种方法读取文件内容:一 种是使用 FileInputStream 类,另一种是使用 FileReader 类。 使用 FileInputStream 类 FileInputStream 类是文件输入流,它继承了 InputStream 类。通过 FileInputStream 类, 可以读取文件中的字符。 一个使用 FileInputStream 类读取文件内容的 例子的片断如下:

12 12  <%  byte buf[]=new byte[10000];  try  {  String path1 = request.getRealPath("/");  File fp = new File(path1,"file1.txt");  FileInputStream fistream = new FileInputStream(fp);  int bytesum = fistream.read(buf,0,10000);  String str_file = new String(buf,0,bytesum);  out.println(str_file);  fistream.close();  }  catch(IOException e) {  out.println(" 文件读错误! ");  }  %>

13 13 程序分析如下:  首先创建了一个 byte 类型的字符数组 buf ,并为其 分配了 10000 个字符空间,用来存放从文件读出的 数据。我们将这个数组 buf 的存储空间称为缓冲区, 该缓冲区的容量视需要自己确定。  获得文件 file1.txt 所在的路径,生成一个代表该文 件的 File 类对象,由变量 fp 引用。  调用 FileInputStream 类的构造方法,创建一个 FileInputStream 类型的文件输入流,设置由变 量 fistream 引用。

14 14  调用 FileInputStream 类的 read() 方法,将文 件 file1.txt 的内容从开头读取 10000 个字符,并 存入到缓冲区 buf 中。 read() 方法的原型为: public int read(byte[] b,int off,int len) throws IOException  创建了一个 String 类型的字符串对象 str_file ,并 将缓冲区中的数据存入到字符串中。  将 str_file 打印输出,也就是 file1.txt 文件的内容。  值得注意的是,程序使用了 try … catch 语句用 来处理异常,如果出现异常,就会输出 “ 文件读错 误! ” 提示信息。

15 15 使用 FileReader 类  FileReader 类也是 Java 的 I/O 机制中众 多的读写类之一,将它与 BufferedReader 类配 合起来使用,可以逐行读取文件的内容。  下面的这个程序片断就是使用这两个类来读 取 file1.txt 中的内容。 

16 16  <%try{  String path1 = request.getRealPath("/");  File fp = new File(path1,"file1.txt");  FileReader freader = new FileReader(fp);  BufferedReader bfdreader = new BufferedReader(freader);  String str_line = bfdreader.readLine();  while(str_line!=null) {  out.println(str_line);  out.println(" ");  str_line = bfdreader.readLine();  }  bfdreader.close();  freader.close();  }  catch(IOException e) {  out.println(" 文件读错误! ");  }%>

17 17  程序分析如下: ①获取文件 file1.txt 所在的路径,生成一个代表该文 件的 File 类对象,由变量 fp 引用。 ②调用 FileReader 类的构造方法,创建一个 FileReader 类型的文件读写流,设置由变量 freader 引用。  FileReader 类有多种构造方法,除了实例中使用 的构造方法:  FileReader (File file)  还有一种常用的构造方法:  FileReader (String name)

18 18 ③调用 BufferedReader 类的构造方法,创建一个 BufferedReader 对象。 BufferedReader 类是 用来缓存字符以更高效的读取字符串、数组和文本 行。 ④调用 readLine() 方法可以读取每一行的数据,程 序中使用了一个 while 循环,逐行读取 bfdreader 中的字符,并将结果打印出来,当需要换行时就输 出 “ ” 来换行。 ⑤关闭 bfdreader 对象和 freader 对象。

19 19  2 、写入内容到文件  读者在浏览网页时,经常会遇到需要用户 填写信息的地方,如用户填写对于某产品的意见等, 当用户输入信息并提交后,服务器会将信息保存起来, 保存的办法可以存入数据库,也可以存入文件。  与 FileReader 类相对应, FileWriter 类 是用于文件写的类。通过它,我们可以将内容写入到 指定的文件中。  实例,功能是:用户输入信息,提交后, 服务器将其存入指定的文件中。  采用 HTML+JSP 模式, HTML 网页用于 用户输入信息, JSP 网页接收 HTML 网页表单的信 息,并存入文件。

20 20  其中, Html 网页编写比较简单。  主要是 JSP 程序,它主要完成两个任务: 接收文本区域的内容,以及将其保存到文件中。  <%  String path1 = request.getRealPath("/");  File fp = new File(path1,"file2.txt");  FileWriter fwriter = new FileWriter(fp);  request.setCharacterEncoding("GBK");  String str_file = request.getParameter("text");  fwriter.write(str_file);  fwriter.close();  out.println(" 已将内容成功写入到文件! ");  %> 

21 21  程序分析如下: ①获得文件 file2.txt 所在的路径,生成一个代表该文 件的 File 类对象,由变量 fp 引用。如果指定路径中 没有该文件,则自动创建该文件。 ②调用 FileWriter 类的构造函数,创建一个 FileWriter 对象,设定由 fwriter 引用。 ③在使用 getParameter() 方法取得 text 的内容前, 使用了 setCharacterEncoding() 将其编码设置 为 “ GBK ” ,这是为了防止中文乱码问题。 ④取得 text 的内容并将其放置在字符串变量 str_file 中后,调用 FileWriter 类的 write() 方法将其存 入到指定文件中。

22 22 ⑤最后,关闭 FileWriter 对象 fwriter ,并打印输出 信息: “ 成功写入内容到文件! ” 。  写入文件例子

23 23  3. 文件操作应用 无论是 ASP 、 PHP 技术,还是 JSP 技术实现的 Web 应用中,都可能有计数器、留言板等功能。这 些功能都要求将某些信息永久保留起来,保留它们 有两种方法:一种是存入数据库,另一种是存入文 件。后者不涉及数据库的操作,比较简单、方便。 1 、计数器 前面,利用 JavaBean 存在的范围创建过计数器, 但那些计数器有一个致命的缺点:计数器的值不能 永久的保存下来。即使是使用 Application 范围的 JavaBean ,当由于某种原因重新启动服务器后,计 数器中原来的值就会消失,又会从 0 开始计数。

24 24  为了克服这个缺点,我们利用 JSP 文件操作来编 写一个实用的计数器,该计数器将值存入到文件中, 使计数器中的值不会丢失。 计数器例子

25 25 2 、留言板 编写一个简单实用的留言板,并将用户的留言存 入文件中。 留言前 留言后

26 26  一、填空题  1. 在 JSP 中,使用 request 对象的 ___________ 方法可以获得文件夹的物理路径。  2. 在 JSP 文件操作中,要用到 File 类,它存在于包 ___________ 中。 File 类有许多重要的方法,如 ___________ 、 ___________ 、 ___________ 、 ___________ 等,利用这些方 法进行文件操作。  3. 一般说来,有两种方法读取文件内容:一种是使用 ___________ 类,另一种是使用 ___________ 类。

27 LOGO www.themegallery.com


Download ppt "LOGO File 操作. 2 主要内容  1. 操作文件和文件夹 1. 操作文件和文件夹  2. 文件的读写 2. 文件的读写  3. 文件操作应用 3. 文件操作应用."

Similar presentations


Ads by Google