Tag: java io

为什么不能将RandomAccessFile转换为Inputstream?

我执行此操作时出现编译错误: RandomAccessFile raf = new RandomAccessFile(…) InputStream is = (InputStream)raf; RandomAccessFile应该是InputStream子类,尽管不是直接的。 来自docs: RandomAccessFile实现DataInput ,它包含DataInputstream和InputStream 为什么这个无效? 还要感谢您对使用RandomAccessFile作为InputStream的正确方法的输入? 我在想包装方法。

PrintWriter将文本添加到文件中

在我的在线计算机科学课上,我必须编写一个程序来确定太阳系中每个行星的表面引力。 除了一个,我几乎已经完成了它的每个方面。 我需要使用单独的方法将表面重力写入文件。 这是我目前的方法: public static void writeResultsToFile(double g) throws IOException{ PrintWriter outFile = new PrintWriter(new File(“planetaryData.txt”)); outFile.printf(“%.2f%n”, g); outFile.close(); } 我的问题是,当我将其写入文件时,它将覆盖以前的值。 我如何获得它包括所有值。 如果有帮助,这是我的全部代码: import java.util.Scanner; import java.io.PrintWriter; import java.io.IOException; import java.io.File; public class gravityV1 { /** * @param args */ public static double calculateSurfaceGravity(double d, double M){ double G = 6.67 * Math.pow(10, -11); […]

JAVA:一起读写文件

我试图读取一个java文件并同时修改它。 这就是我需要做的:我的文件格式如下: aaa bbb aaa ccc ddd ddd 我需要读取文件并获取出现次数的计数并修改重复项以获取以下文件: aaa – 2 bbb – 1 ccc – 1 ddd – 2 我尝试使用RandomAccessFile来执行此操作,但无法执行此操作。 有人可以帮我解决这个问题的代码吗?

Java读取文件,其路径中包含空格

我试图用FileInputStream打开文件,其名称中包含空格。 例如: String fileName = “This is my file.txt”; String path = “/home/myUsername/folder/”; String filePath = path + filename; f = new BufferedInputStream(new FileInputStream(filePath)); 结果是抛出了FileNotFoundException。 我试图将filePath硬编码为”/home/myUserName/folder/This\\ is\\ my\\ file.txt”只是为了看看我是否应该转义空格字符并且它似乎不起作用。 对此事有何建议? 编辑:只是与所有人查看此问题在同一页面上…打开一个文件名称中没有空格的文件,一个有空格的文件失败。 权限不是此处的问题,也不是文件夹分隔符。

用于进度报告的InputStream或Reader包装器

所以,我正在将文件数据提供给带有Reader的API,我想要一种报告进度的方法。 编写一个包装FileInputStream的FilterInputStream实现,跟踪读取的字节数与总文件大小,并触发一些事件(或调用一些update()方法)来报告小数进度似乎应该是直截了当的。 。 (或者,它可以报告绝对字节读取,而其他人可以进行数学计算 – 在其他流式传输情况下可能更常用。) 我知道我以前见过这个,我甚至可能以前做过,但我找不到代码,而且我很懒。 有没有人得到它? 或者有人可以提出更好的方法吗? 一年(有点)之后…… 我在下面根据Adamski的答案实施了一个解决方案,并且它有效,但经过几个月的使用后我不推荐它。 当您有大量更新时,触发/处理不必要的进度事件会产生巨大的成本。 基本的计数机制很好,但是对于那些关心进展轮询的人来说要好得多,而不是把它推到他们身上。 (如果你知道总的大小,你可以尝试每隔> 1%的变化发射一次事件或其他什么,但这不值得麻烦。通常,你没有。)

使用Java删除具有相同前缀字符串的文件

我在目录中有大约500个文本文件,其文件名中包含相同的前缀,例如dailyReport_ 。 文件的后半部分是文件的日期。 (例如, dailyReport_08262011.txt , dailyReport_08232011.txt ) 我想使用Java过程删除这些文件(我可以使用shell脚本并在crontab中添加一个作业,但应用程序应该由外行使用)。 我可以使用类似的东西删除一个文件 try{ File f=new File(“dailyReport_08232011.txt”); f.delete(); } catch(Exception e){ System.out.println(e); } 但是我可以删除具有特定前缀的文件(例如:第8个月的dailyReport08 )我可以使用rm -rf dailyReport08*.txt在shell脚本中轻松完成。 但File f=new File(“dailyReport_08*.txt”); 在Java中不起作用(如预期的那样)。 现在有没有这样的东西可以在Java中运行而不运行在目录中搜索文件的循环 ? 我可以使用类似于shell脚本中使用的一些特殊字符来实现这一点吗?

在FileReader和InputStreamReader之间进行选择

我有两种方法来读取文本文件在java中使用FileReader和其他文件InputStream FileReader fr=new FileReader(“C:\\testq\\test.txt”); BufferedReader br=new BufferedReader(fr); String s; while((s=br.readLine())!=null){ System.out.println(“value are “+s); } 和其他是 FileInputStream fstream = new FileInputStream(“C:\\testnew\\out.text”); DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String strLine; while ((strLine = br.readLine()) != null){ System.out.println (strLine); } 虽然两者都给我输出……我只是想知道哪种方法最好。

套接字:BufferedReader readLine()块

我正在使用BufferedReader.readLine()方法从远程服务器读取响应(用C语言编写,我无法访问源代码)。 BufferedReader br = new BufferedReader(new InputStreamReader(in)); String line; while((line = br.readLine())!=null){ […] } 但它总是阻塞在最后一行,直到它超时。 所以我使用了以下代码: int b; while(true){ b = in.read; […] } 我发现读取的最后一个字节的整数值为13,我认为这是一个回车,对吗? 那么为什么readLine方法会阻塞? 服务器通常如何发出信号流的结束信号? 谢谢。

使用Java的File.delete()方法

当我使用File.delete()方法删除文件时,删除的文件在哪里? 我使用的是Mac,我在垃圾箱中看不到该文件。 我想知道文件存储在哪里? 或者如果它永久消失了。 谢谢,

使用RandomAccessFile在中间插入文本后会删除一些文本

我的示例代码 String line = null; RandomAccessFile file = new RandomAccessFile(“D:/mahtew.txt”, “rw”); System.out.println(file.getFilePointer()); while((line = file.readLine()) != null){ System.out.println(line); System.out.println(file.getFilePointer()); if(line.contains(“Text to be appended with”)){ file.seek(file.getFilePointer()); file.write(” new text has been appended”.getBytes()); break; } } file.close(); 执行前demo.txt one two three Text to be appended with five six seven eight nine ten 执行后demo.txt one two three Text […]