Java http-读取大文件

标签 java file http

我正在 Java 程序中使用 http 访问读取一个大文件。我阅读了该流,然后应用了一些标准。是否可以在读取流上应用标准,这样我就会得到一个简单的结果(我正在读取大文件)?

这是我读取文件的代码:

public String getMyFileContent(URLConnection uc){
            String myresult = null;
            try {
                InputStream is = uc.getInputStream();
                InputStreamReader isr = new InputStreamReader(is);
                int numCharsRead;
                char[] charArray = new char[1024];
                StringBuffer sb = new StringBuffer();

                while ((numCharsRead = isr.read(charArray)) > 0) {
                    sb.append(charArray, 0, numCharsRead);
                }
                myresult = sb.toString();

            }
            catch (MalformedURLException e) {
                e.printStackTrace();
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            return result;  
}

然后在另一种方法中,我应用标准(来解析内容)。 我无法做到这样:

public String getMyFileContent(URLConnection uc){
    String myresult = null;
    try {
        InputStream is = uc.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        int numCharsRead;
        char[] charArray = new char[1024];
        StringBuffer sb = new StringBuffer();

        while ((numCharsRead = isr.read(charArray)) > 0) {
            sb.append(charArray, 0, numCharsRead);
            //Apply my criteria here on the stream ??? Is it possible ???
        }
        myresult = sb.toString();
    }
    catch (MalformedURLException e) {
        e.printStackTrace();
    }
    catch (IOException e) {
        e.printStackTrace();
    }
    return myresult;
}

最佳答案

我会使用的模板是

InputStreamReader isr = new InputStreamReader(uc.getInputStream());
int numCharsRead;
char[] charArray = new char[1024];

while ((numCharsRead = isr.read(charArray)) > 0) {
    //Apply my criteria here on the stream
}

但是由于它是文本,这可能更有用

InputStream is = uc.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(uc.getInputStream()));
String line;

while ((line = br.readLine()) != null) {
    //Apply my criteria here on each line
}

关于Java http-读取大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8714984/

相关文章:

java - 将java转换为c#代码的工具

iphone - iOS 4.2.1 缺少文件?

c++ - 损坏的 HTML - 浏览器不会从我的网络服务器下载整个 HTTP 响应,CURL 会

http - 有没有办法使用特定的 TCPConn 来发出 HTTP 请求?

performance - Golang Http Get 请求很慢

java - 在 JPOS 中放置自定义逻辑的正确位置是什么?

java - Spring Boot maven jar无法运行

java - 使用socket连接PC的问题

java - 如何检查文件系统是否支持 Java 中的链接和符号链接(symbolic link)

C - 给定一个不区分大小写的文件路径,如何检查文件是否存在?