Tag: io

如何在java中打开文件之前等待windows进程完成

我有一个实现了一个监听器,通知我们是否在特定目录中收到一个新文件。 这是通过轮询和使用TimerTask实现的。 现在程序已设置好,一旦收到新文件,它就会调用另一个打开文件的java程序,并validation它是否是正确的文件。 我的问题是,由于轮询在指定的秒数后发生,可能会出现在该目录中复制文件并因此被Windows锁定的情况。 这会引发IOException,因为尝试打开它进行validation的其他java程序不能(“File正被另一个进程使用”)。 有没有办法让我知道Windows何时完成复制,然后调用第二个程序从java进行validation? 如果有人需要它们以帮助我,我将非常乐意发布代码片段。 谢谢

是否需要FileChannel.force和FileDescriptor.sync?

在https://stackoverflow.com/questions/730521/really-force-file-sync-flush-in-java中 ,作者在答案摘要中写道: 对于Java NIO,使用c.force(true),然后使用s.getFD()。sync() 我的问题是:你真的需要两者吗? 力不够吗? 是不是强制和同步只是不同的接口做同样的事情? 我找不到任何确认的地方。

JAVA写入具有特定偏移量的文件

我必须编写一个程序来读取文件并插入用户通过控制台窗口给出的一些文本。 插入文本的位置也应通过控制台窗口给出。 下面是我的代码,输入句子和偏移后我得到“字符串索引超出范围”。 输入句子:嘿 输入位置:5 字符串索引超出范围:9 < – 这是错误, import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.BufferedWriter; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.util.Scanner; import java.io.Writer; class ReadPosition{ public static void main(String args[]) { try{ FileWriter Writer = new FileWriter(“in.txt”); @SuppressWarnings(“resource”) BufferedWriter bufferedWriter = new BufferedWriter(Writer); Scanner input= new Scanner(System.in); System.out.println(“Enter The Sentence: “); […]

用Java读取和处理大文本文件?

我想阅读一个非常大的文本文件(Web应用程序的日志文件)并进行一些处理。 是否有任何框架可以帮助完成此类工作? 该文件是100M +,我应该使用mutil-thread? 最好的祝福

eclipse中的java文件相对路径

三天我试图弄清楚如何使用相对文件路径读取文件。 在eclipse中,这个编译并且工作得很好,但是当我导出app时。 它说它找不到文件。 这是我工作的截图和代码。 这段代码有效,但只有在eclipse中,它才能编译并完美地完成工作。 但是当我将其导出为runnable jar文件时,我得到一个错误,它无法找到licenca.txt BufferedReader in = new BufferedReader(new FileReader(new File(“licenca.txt”).getPath())); String str; while ((str = in.readLine()) != null) { taLicenca.append(str + “\n”); } 这是我的项目文件的屏幕截图 文件http://img207.imageshack.us/img207/5317/63432445.png 我试过使用扫描仪function,仍然是相同的结果,它在eclipse中工作,但在导出时不起作用。 这是错误消息: 错误http://img98.imageshack.us/img98/1771/greskaa.png

如何在客户端和服务器之间建立多个IO流?

我正在用Java创建一个客户端/服务器对,目前只支持通过PrintWriters和BufferedReaders进行隔行扫描的文本通信,这些通信包裹在服务器和客户端的IO流中。 我想实现一个函数,它使用Image [Input / Output] Stream以一定的间隔从服务器向客户端发送BufferedImage。 问题是我希望在单独的线程中发送/接收BufferedImages,以便客户端/服务器仍然可以发送/接收文本命令。 我可以创建多个流或套接字吗? 如果是这样,那是最好的方法吗?

使用BufferedReader了解文件的偏移量?

我是java的新手。 我正在使用BufferedReader读取一个大文件。 我怎么知道一行的偏移量,以便我可以将它存储在其他文件中以便进行索引? 编辑:这是我的代码 path=FileSystems.getDefault().getPath(“.”,filename); br=Files.newBufferedReader(path_doc_title_index_path, Charset.defaultCharset()); int offset=0; //offset of first line. String strline=br.readline(); offset+=strline.length()+1; //offset of second line

如何查看新内容的文件并检索该内容

我有一个名为foo.txt的文件。 该文件包含一些文本。 我想实现以下function: 我启动程序 写一些文件(例如添加一行: new string in foo.txt ) 我想获得此文件的新内容。 你能澄清这个问题的最佳解决方案吗? 此外,我想解决相关问题:如果我修改foo.txt我想看到差异。 我在Java中找到的最接近的工具是WatchService但如果我理解正确,这个工具只能检测文件系统上发生的事件类型(创建文件或删除或修改)。

你怎么保持scanner.next()不包括换行符?

我试图简单地使用带有分隔符等于“”的scanner .next()读取文本文件中的单词,但扫描程序包含带有令牌的换行符/回车符。 我已经搜索了互联网,试图找到这个问题的一个很好的例子,但没有找到它所以我在这里发布它。 我在SO上发现了另一个类似的问题。 我还查看了有关扫描仪和模式的文档( http://docs.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html )但我仍然无法找到解决方法这个。 文本文件: 这是一个测试 看看if1这个,是否有效 好! 码: int i = 0; String string; try(Scanner scanner = new Scanner(new File(filename))) { scanner.useDelimiter(” “); while(scanner.hasNext()) { string = scanner.next(); System.out.println(i++ + “: ” + string); } }catch(IOException io_error) { System.out.println(io_error); } 输出: 0:这个 1:是 2:a 3:测试 至 4:看 5:if1 6:这个, 7:是 8:工作 […]

为什么EOFException主要由数据输入流使用?

来自Java API 公共类EOFException扩展了IOException 表示在输入期间意外到达文件末尾或流末尾的信号。 此exception主要由数据输入流用于信号流的结束。 请注意, 许多其他输入操作在流的末尾返回特殊值而不是抛出exception。 那么为什么数据输入流与其他输入操作有如此不同呢? 为什么它不像其他输入操作那样返回特殊值来表示流的结束? 因为我认为exception只应用于非常特殊的情况。