如何使用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读取存储在服务器上的文件内容? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
MFC 读取http文件服务器上的文件列表,并选择文件进行下载
如何使用 PLSQL 打开、读取和存储 XLSX 文件的 DB 内容?