如何使用我的servlet从http URL下载和读取.txt文件

时间:2016-04-14 12:29:02

标签: java servlets text download

我是一个年轻的新开发者,我从未使用过Java servlet。 我有一个http URL,允许我下载.txt文件(例如:http://textfiles.com/100/914bbs.txt

所以我构建了一个受我在其他帖子上看到的Java servlet。我的目标是下载并阅读此.txt文件。 我想把这个下载的文件放在我的" data.txt"。

ServletDownload类:

public class ServletDownload extends HttpServlet {
    private static final int BYTES_DOWNLOAD = 1024;

    public void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException {
        response.setContentType("text/plain");
        response.setHeader("Content-Disposition",
                "attachment;filename=downloadname.txt");
        ServletContext ctx = getServletContext();
        InputStream is = ctx.getResourceAsStream("Donnees/data.txt");

        int read = 0;
        byte[] bytes = new byte[BYTES_DOWNLOAD];
        OutputStream os = response.getOutputStream();

        while ((read = is.read(bytes)) != -1) {
            os.write(bytes, 0, read);
        }
        os.flush();
        os.close();
    }
}

现在我不知道我的代码是否做得好以及如何将其与我的网址一起使用

1 个答案:

答案 0 :(得分:-1)

代码的结尾可能是这样的(使用try-with-resources语句来正确关闭流):

try (InputStream is = new URL("http://textfiles.com/100/914bbs.txt").openStream();
     OutputStream os = response.getOutputStream()) {

    int read = 0;
    byte[] bytes = new byte[BYTES_DOWNLOAD];

    while ((read = is.read(bytes)) != -1) {
        os.write(bytes, 0, read);
    }
    os.flush();
}