标签: inputstream

我必须关闭FileInputStream吗?

我是测试自动化的实习生.我正在使用Eclipse创建Junit代码并使用Eclipse运行.我正在使用FileInputStream函数从excel表中重新获取数据.

FileInputStream fi=new FileInputStream("c:\\search.xls");
Workbook w=Workbook.getWorkbook(fi);
Sheet s=w.getSheet(0);
Run Code Online (Sandbox Code Playgroud)

是否有必要关闭Inputstream功能?如果是这样,请指导我一些编码.

java file-io inputstream

26
推荐指数
5
解决办法
4万
查看次数

26
推荐指数
1
解决办法
4万
查看次数

如何缓存InputStream以供多种用途

我有一个文件的InputStream,我使用apache poi组件来读取它像这样:

POIFSFileSystem fileSystem = new POIFSFileSystem(inputStream);
Run Code Online (Sandbox Code Playgroud)

问题是我需要多次使用相同的流,POIFSFileSystem在使用后关闭流.

从输入流缓存数据然后将更多输入流提供给不同的POIFSFileSystem的最佳方法是什么?

编辑1:

通过缓存我的意思是存储供以后使用,而不是作为加速应用程序的方法.最好是将输入流读入数组或字符串,然后为每次使用创建输入流?

编辑2:

很抱歉重新打开这个问题,但在桌面和Web应用程序中工作时条件有所不同.首先,我从tomcat web app中的org.apache.commons.fileupload.FileItem获取的InputStream不支持标记,因此无法重置.

其次,我希望能够将文件保存在内存中,以便在处理文件时更快地访问和减少io问题.

java caching inputstream apache-poi

25
推荐指数
3
解决办法
4万
查看次数

如何获取正在上载的文件的InputStream的MIME类型?

简单的问题:如何在InputStream不保存文件的情况下获取用户上传到我的servlet的文件的MIME类型(或内容类型)?

java servlets inputstream mime-types

25
推荐指数
3
解决办法
5万
查看次数

来自ZipInputStream的ZipEntry的getInputStream(不使用ZipFile类)

如何在不使用课程的情况下获得InputStreama ?ZipEntryZipInputStreamZipFile

java inputstream zipfile zipinputstream

25
推荐指数
2
解决办法
3万
查看次数

将用空格分隔的整数读入int []数组

我读了线

BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
reader.readLine();
Run Code Online (Sandbox Code Playgroud)

示例输入是

1 4 6 32 5
Run Code Online (Sandbox Code Playgroud)

读取输入并将其放入整数数组的最快方法是什么int[]

如果可能的话,我也在寻找一些单线解决方案.

java arrays int inputstream

25
推荐指数
3
解决办法
7万
查看次数

Java 6和7之间有什么区别会导致性能问题?

我对Java 7的一般经验告诉我它比Java 6更快.但是,我遇到了足够的信息让我相信并非总是如此.

第一部分信息来自此处的 Minecraft Snooper数据.我的目的是查看这些数据,以确定用于发射Minecraft的不同开关的效果.例如,我想知道使用-Xmx4096m是否对性能产生负面或正面影响.在我到达那里之前,我查看了正在使用的不同版本的Java.它涵盖了从1.5到使用1.8的开发人员的所有内容.通常,当您增加java版本时,您会看到fps性能的提高.在1.6的不同版本中,您甚至可以看到这种渐进的趋势.老实说,我并不期待看到尽可能多的不同版本的Java,但我想人们不会像他们应该那样运行更新.

在1.6的后期版本中,您可以获得最高的偷看率.1.7在1.6的后续版本中平均执行大约10fps但仍然高于1.6的早期版本.在我自己的系统中的样本中,几乎不可能看到差异,但是当看到更广泛的样本时,它是清楚的.

为了控制某人可能找到了Java的魔术开关的可能性,我只能通过查看没有传递开关的数据来控制.这样,在我开始查看不同的标志之前,我会有一个合理的控制.

我驳回了我所看到的大部分内容,因为这可能是某些Magic Java 6,有人不与我分享.

现在我一直在研究另一个需要我在InputStream中传递数组以便由另一个API处理的项目.最初我使用了ByteArrayInputStream,因为它可以开箱即用.当我查看代码时,我注意到每个函数都是同步的.由于这个项目没有必要,我重新编写了一个同步剥离.然后我决定在这种情况下想知道同步的一般成本对我来说是什么.

我嘲笑了一个简单的测试只是为了看.我使用System.nanoTime()计算了所有内容,并使用了Java 1.6_20 x86和1.7.0-b147 AMD64,以及1.7_15 AMD64并使用了-server.我预计AMD64版本仅基于架构表现优异,并且具有java 7的优势.我还看了第25,第50和第75百分位数(蓝色,红色,绿色).然而1.6没有服务器击败了其他任何配置的裤子. 图形

所以我的问题是.1.6 -server选项中影响性能的是什么,在1.7中默认为默认值?

我知道1.7中的大部分速度增强来自1.6中的一些更激进的性能选项,但其中一个导致性能差异.我只是不知道要看哪些.

public class ByteInputStream extends InputStream {

public static void main(String args[]) throws IOException {
    String song = "This is the song that never ends";
    byte[] data = song.getBytes();
    byte[] read = new byte[data.length];
    ByteArrayInputStream bais = new ByteArrayInputStream(data);
    ByteInputStream bis = new ByteInputStream(data);

    long startTime, endTime;

    for (int i = 0; i < 10; i++) {
        /*code for …
Run Code Online (Sandbox Code Playgroud)

java performance inputstream

25
推荐指数
1
解决办法
1万
查看次数

在Grails中放置文本文件的位置,以及如何获取路径

我需要在.txt文件中读入一个groovy类,以便逐行查询它.但我不确定我在grails应用程序中放入了什么文件夹,以及如何获取它的路径?

到目前为止,我已尝试将其置于src新文件夹下web-app/txt

我已经尝试了以下内容来阅读它

fileIn = new File('/lexicon.txt').text 
Run Code Online (Sandbox Code Playgroud)

fileIn = new File('txt/lexicon.txt').text
Run Code Online (Sandbox Code Playgroud)

无济于事.

任何身体有任何指针?

java grails inputstream file

25
推荐指数
4
解决办法
2万
查看次数

在Java中关闭输入流

我在try/catch块中有以下代码段

 InputStream inputstream = conn.getInputStream();
 InputStreamReader inputstreamreader = new  InputStreamReader(inputstream);
 BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我必须关闭finally块中的这些流时,是否必须关闭所有3个流,或者只是关闭befferedreader将关闭所有其他流?

java inputstream

24
推荐指数
2
解决办法
8896
查看次数

如何读取Server Socket JAVA中的所有Inputstream

我在我的一个项目中使用Java.net.我写了一个从客户端获取inputStream的App Server.但有时我的(缓冲)InputStream无法获取客户端发送到我的服务器的所有OutputStream.我怎么能写一个等待或类似的东西,我的InputStream获取客户端的所有OutputStream?

(我的InputStream不是字符串)

private Socket clientSocket;
private ServerSocket server;
private BufferedOutputStream outputS;
private BufferedInputStream inputS;
private InputStream inBS;
private OutputStream outBS;

server = new ServerSocket(30501, 100);
clientSocket = server.accept();

public void getStreamFromClient()  {
    try {
        outBS = clientSocket.getOutputStream();
        outputS = new BufferedOutputStream( outBS);
        outputS.flush();

        inBS = clientSocket.getInputStream();
        inputS = new BufferedInputStream( inBS );

    } catch (Exception e) {
        e.printStackTrace();
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

java network-programming inputstream serversocket bufferedinputstream

24
推荐指数
1
解决办法
10万
查看次数