如何妥善处理的InputStream作为方法的参数

问题描述 投票:-2回答:1

我一直在google搜索近两天,我仍然无法弄清楚。我有当它经过InpuStream is作为参数,并希望我来存储无论是传递和返回计数这项工作,但我不知道,似乎无法推测如何妥善处理的InputStream。我总是得到的说法错误。

码:

class Subtitles {
    int redenBroj;
    int vrPocetok;
    int vrKraj;
    String text;

    public Subtitles() {
        redenBroj = 0;
        vrPocetok = 0;
        vrKraj = 0;
        text = null;
    }

    int loadSubtitles(InputStream is) {

    }

}
java
1个回答
0
投票

InputStream是一个抽象类。因此,该方法int loadSubtitles的实现将不考虑在给定的InputStream是如何实现的 - 它可以是任何东西,只要它是一种InputStream的。

您可以从InputStream的不同的子类选择,让你可以用自己的数据格式的测试方法:

FileInputStream - 如果你想流的文件,您可以使用此类型的输入流:

File sourceFile = new File("source.txt");
InputStream inputStream = new FileInputStream(sourceFile)

ByteArrayInputStream - 这用于流的字节的阵列。

byte[] input = "this is an example array".getBytes();
InputStream inputStream = new ByteArrayInputStream(input);

现在你已经建立了一个输入流,您现在可以不管使用它们它是如何构建的:

// Java 9+
byte[] content = inputStream.readAllBytes();
// do something with `content`

-

// before Java 9
int data = inputStream.read();
while (data != -1) {
    // doSomething with `data`

    data = inputStream.read(); // read next data
}
inputStream.close(); // or use the try-with-resources syntax
© www.soinside.com 2019 - 2024. All rights reserved.