jsp文件操作之读取篇

  • 来源: IT168.com  作者: 若水   2008-04-02/17:48
  •        操作是网站编程的重要内容之一,asp关于文件操作讨论的已经很多了,让我们来看看jsp中是如何实现的.这里用到了两个文件,一个jsp文件一个javabean文件,通过jsp中调用javabean可以轻松读取文本文件,注意请放置一个文本文件afile.txt到web根目录的test目录下,javabean文件编译后将class文件放到对应的class目录下(tomcat环境)。

    Read.jsp

    <html>
    <head>
    <title>读取一个文件</title>
    </head>
    <body bgcolor="#000000">
    <%--调用javabean --%>
    <jsp:useBean id="reader" class="DelimitedDataFile" scope="request">
    <jsp:setProperty name="reader" property="path" value="/test/afile.txt" />
    </jsp:useBean>

    <h3>文件内容:</h3>

    <p>

    <% int count = 0; %>
    <% while (reader.nextRecord() != -1) { %>
    <% count++; %>
    <b>第<% out.print(count); %>行:</b>
    <% out.print(reader.returnRecord()); %><br>
    <% } %>
    </p>
    </body>
    </html>


    //DelimitedDataFile.java bean文件源代码
    //导入java包
    import java.io.*;
    import java.util.StringTokenizer;

    public class DelimitedDataFile
    {

    private String currentRecord = null;
    private BufferedReader file;
    private String path;
    private StringTokenizer token;
    //创建文件对象
    public DelimitedDataFile()
    {
    file = new BufferedReader(new InputStreamReader(System.in),1);
    }
    public DelimitedDataFile(String filePath) throws FileNotFoundException
    {

    path = filePath;
    file = new BufferedReader(new FileReader(path));
    }
    //设置文件路径
    public void setPath(String filePath)
    {

    path = filePath;
    try {
    file = new BufferedReader(new
    FileReader(path));
    } catch (FileNotFoundException e) {
    System.out.println("file not found");
    }

    }
    //得到文件路径
    public String getPath() {
    return path;
    }
    //关闭文件
    public void fileClose() throws IOException
    {

    file.close();
    }
    //读取下一行记录,若没有则返回-1
    public int nextRecord()
    {


    int returnInt = -1;
    try
    {
    currentRecord = file.readLine();
    }

    catch (IOException e)
    {
    System.out.println("readLine problem, terminating.");
    }

    if (currentRecord == null)
    returnInt = -1;
    else
    {
    token = new StringTokenizer(currentRecord);
    returnInt = token.countTokens();
    }
    return returnInt;
    }

    //以字符串的形式返回整个记录
    public String returnRecord()
    {

    return currentRecord;
    }
    }

    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多