Tag: fileoutputstream

在性能方面,使用BufferedOutputStream包装FileOutputStream的意义何在?

我有一个模块负责读取,处理和写入字节到磁盘。 这些字节通过UDP进入,并且在各个数据报被组装之后,被处理和写入磁盘的最终字节数组通常在200字节和500,000字节之间。 偶尔会有字节数组,在组装后,超过500,000字节,但是这些是比较less见的。 我正在使用FileOutputStream的write(byte\[\])方法 。 我也在用BufferedOutputStream封装FileOutputStream ,包括使用接受缓冲区大小的构造函数作为参数 。 看起来,使用BufferedOutputStream的趋势往往略好,但我只是开始尝试不同的缓冲区大小。 我只有一个有限的样本数据集(来自样本运行的两个数据集,我可以通过我的应用程序)。 是否有一个一般的经验法则,我可以申请试图计算最佳的缓冲区大小,以减less磁盘写入,并最大限度地提高了磁盘写入的性能给定的信息,我知道我正在写的数据?

从FileOutputStream获取文件名

有没有办法从FileOutputStream或FileInputStream获取文件名?

Java FileOutputStream创build文件如果不存在

有没有办法使用FileOutputStream的方式,如果一个文件(string文件名)不存在,那么它会创build它? FileOutputStream oFile = new FileOutputStream("score.txt", false);

Android错误 – 打开失败ENOENT

我正在尝试使用一个整数数组来保存一些数据块的覆盖范围,这个数组只是简单地保存了一个数据块的执行次数。 不过,由于某些原因,当我尝试写入一些我创build的文件(例如我在Eclipse中制作的“BlockForHelper.txt”,并将其放在项目目录中)时,出现以下错误: java.io.FileNotFoundException: /nfs/guille/groce/users/nicholsk/workspace3/SQLTest/BlockForTest: open failed: ENOENT (No such file or directory) at libcore.io.IoBridge.open(IoBridge.java:416) at java.io.FileOutputStream.<init>(FileOutputStream.java:88) at java.io.FileOutputStream.<init>(FileOutputStream.java:73) at com.example.sql2.SQLTest.blockCoverage(SQLTest.java:149) at com.example.sql2.test.SQLTestCase.testSuite(SQLTestCase.java:41) at java.lang.reflect.Method.invokeNative(Native Method) at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:214) at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:199) at android.test.ActivityInstrumentationTestCase2.runTest(ActivityInstrumentationTestCase2.java:192) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1584) Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory) at libcore.io.Posix.open(Native Method) at libcore.io.BlockGuardOs.open(BlockGuardOs.java:110) […]

Android下载二进制文件的问题

我在从互联网下载我的应用程序中的二进制文件(video)时遇到问题。 在Quicktime中,如果我直接下载,它可以正常工作,但是通过我的应用程序,它会被搞乱(即使它们在文本编辑器中看起来完全一样)。 这里是一个例子: URL u = new URL("../a.html"); HttpURLConnection c = (HttpURLConnection) u.openConnection(); c.setRequestMethod("GET"); c.setDoOutput(true); c.connect(); FileOutputStream f = new FileOutputStream(new File(root,"Video.mp4")); InputStream in = c.getInputStream(); byte[] buffer = new byte[1024]; int len1 = 0; while ( (len1 = in.read(buffer)) > 0 ) { f.write(buffer); } f.close();

即使file.exists(),file.canRead(),file.canWrite(),file.canExecute()都返回true,file.delete()

我正在尝试使用FileOutputStream删除一个文件,然后写入一些文件。 这是我用来编写的代码: private void writeContent(File file, String fileContent) { FileOutputStream to; try { to = new FileOutputStream(file); to.write(fileContent.getBytes()); to.flush(); to.close(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 正如所见,我刷新并closures了stream,但是当我尝试删除时, file.delete()返回false。 我删除之前检查,看看文件是否存在,并且: file.exists() , file.canRead() , file.canWrite() , file.canExecute()都返回true。 在调用这些方法之后,我尝试了file.delete()并返回false。 […]