如何使用java读取存储在服务器上的文件内容? [复制]

Posted

技术标签:

【中文标题】如何使用java读取存储在服务器上的文件内容? [复制]【英文标题】:How to read content of file stored on server using java? [duplicate] 【发布时间】:2015-04-25 22:06:20 【问题描述】:

如何使用java读取存储在服务器上的文件? 我有 .txt 文件存储在服务器上,如何读取它的内容。

String test, newq;

newq = "http://www.example.com/pqr.txt";

test = new String(Files.readAllBytes(Paths.get(newq)));

// variable test should contain pqr.txt content

我做错了什么?

【问题讨论】:

我不想下载文件,只想看! 对不起,我可能没听懂你的问题。您想在服务器本身上运行此代码吗?还是您想从客户端(您的本地机器)访问文件? 从客户端访问;我希望客户只阅读其中的文本和字符串。 new String(Files.readAllBytes(Paths.get(newq))) 要下载文件,您需要先阅读它,然后再存储它。请阅读链接问题中的答案。您可以将它们直接应用于您的问题,您不必在阅读后存储文件。 【参考方案1】:

该代码适用于在文件系统中找到的文件。 Path 对象就是专门为此设计的。

当您想访问远程文件时,它不再起作用。

读取文件的一种简单方法是:

    URL url = new URL("https://wordpress.org/plugins/about/readme.txt");
    String text = new Scanner( url.openStream() ).useDelimiter("\\A").next();

它不是很漂亮,但它很小,它可以工作并且不需要任何库。

使用 Apache Commons,您可以这样做:

   URL url = new URL("https://wordpress.org/plugins/about/readme.txt");
   String text = IOUtils.toString(url.openStream());

【讨论】:

谢谢伙计!正是我想要的!【参考方案2】:

通过HttpURLConnection 并使用StringBuilder。草图代码:

final URL url = new URL("http://www.example.com/pqr.txt");

final StringBuilder sb = new StringBuilder();

final char[] buf = new char[4096];

final CharsetDecoder decoder = StandardCharsets.UTF_8.newDecoder()
    .onMalformedInput(CodingErrorAction.REPORT);

try (
    final InputStream in = url.openStream();
    final InputStreamReader reader = new InputStreamReader(in, decoder);
) 
    int nrChars;
    while ((nrChars = reader.read(buf)) != -1)
        sb.append(buf, 0, nrChars);


final String test = sb.toString();

【讨论】:

我在看HttpURLConnection 的源码,HttpURLConnection是一个抽象类,你是怎么创建对象的?使用过其他 API 吗? 对不起,我的错误。查看修改后的代码

以上是关于如何使用java读取存储在服务器上的文件内容? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

java读取照片保存到达梦数据库

MFC 读取http文件服务器上的文件列表,并选择文件进行下载

如何使用 PLSQL 打开、读取和存储 XLSX 文件的 DB 内容?

Java开发学习视频!java读取文件内容并替换

如何在 Java 中读取 Play websocket 服务器上的输入?

读取在java中存储为字符串的xml [重复]