Tag: 文件

如何监视文件夹中的java更改?

我有以下代码用于监视java中任何更改的文件夹: public class FolderWatcher { // public List events = new ArrayList(); public static Event call() throws IOException, InterruptedException { LOG.info(“Watching folder”); Path _directotyToWatch = Paths.get(“data/input-files”); // this will be put in the configuration file WatchService watcherSvc = FileSystems.getDefault().newWatchService(); WatchKey watchKey = _directotyToWatch.register(watcherSvc, ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY); watchKey = watcherSvc.take(); for (WatchEvent event : watchKey.pollEvents()) { […]

Java:从FTP服务器访问文件

所以我有这个FTP服务器里面有一堆文件夹和文件。 我的程序需要访问此服务器,读取所有文件并显示其数据。 出于开发目的,我一直在处理我的硬盘驱动器上的文件,就在“src”文件夹中。 但是现在服务器已启动并运行,我需要将软件连接到它。 基本上我想要做的是获取服务器上特定文件夹中的文件列表。 这是我到目前为止: URL url = null; File folder = null; try { url = new URL (“ftp://username:password@www.superland.example/server”); folder = new File (url.toURI()); } catch (Exception e) { e.printStackTrace(); } data = Arrays.asList(folder.listFiles(new FileFilter () { public boolean accept(File file) { return file.isDirectory(); } })); 但我收到错误“URI scheme is not’file’。” 我理解这是因为我的URL以“ftp://”开头而不是“file:” 但是,我似乎无法弄清楚我应该怎么做呢! 也许有更好的方法来解决这个问题?

如何使用POI SXSSF读取大型电子表格

我试图使用SXSSF读取xls文件。 我已经阅读了有关SXSSF的内容,但并未明确说明如何使用它。 所以我遇到了一些问题。 任何人都可以帮我读取大型xls文件(大约100,000行和7-8张)的java代码。 (根据评论编辑) 这是我尝试过的: Workbook workBook = new SXSSFWorkbook(200); workBook = WorkbookFactory.create(inputStream); Sheet sheet = workBook.getSheetAt(0); int totalRows = sheet.getPhysicalNumberOfRows(); for (int i=0; i<totalRows; i++) { Row row = sheet.getRow(i); int totalCols = row.getPhysicalNumberOfCells(); for(int j=0; j<totalCols; j++) { Cell cell = row.getCell(j); } }

如何创建tmp文件名而不创建文件

我使用SWT在Java中编写应用程序。 我想创建唯一的文件名。 但我不想在硬盘上创建它。 附加function:我想在指定文件夹中创建唯一的文件名。 public String getUniqueFileName(String directory, String extension) { //create unique file name }

在Java(TM)Platform SE二进制文件中打开

我试图删除一个文件,我有两个,一个稍微改变,所以我可以删除旧文件,并用我更改的新文件替换它。 当我尝试删除文件时,我收到错误消息“正在使用的文件”,其中表示无法完成操作,因为该文件是在Java(TM)Platform SE二进制文件中打开的。 我该如何关闭它?

扫描仪与InputStreamReader

有没有人碰巧知道下面两种读取输入文件的方法之间的性能是否存在差异? 谢谢。 1)使用扫描仪和文件读取文件 Scanner input = new Scanner(new File(“foo.txt”)); 2)使用InputStreamReader和FileInputStream读取文件 InputStreamReader input = new InputStreamReader(new FileInputStream(“foo.txt”));

如何使用NIO将InputStream写入File?

我使用以下方式将InputStream写入File : private void writeToFile(InputStream stream) throws IOException { String filePath = “C:\\Test.jpg”; FileChannel outChannel = new FileOutputStream(filePath).getChannel(); ReadableByteChannel inChannel = Channels.newChannel(stream); ByteBuffer buffer = ByteBuffer.allocate(1024); while(true) { if(inChannel.read(buffer) == -1) { break; } buffer.flip(); outChannel.write(buffer); buffer.clear(); } inChannel.close(); outChannel.close(); } 我想知道这是否是使用NIO的正确方法。 我读过一个方法FileChannel.transferFrom ,它有三个参数: ReadableByteChannel src 多头头寸 长计数 在我的情况下,我只有src ,我没有position和count ,有什么方法可以使用此方法来创建文件? 另外对于Image,还有更好的方法只能从InputStream和NIO创建图像吗? 任何信息对我都非常有用。 这里有类似的问题,在SO中,但我找不到适合我的案例的特定解决方案。

在写入文件时从文件中读取数据

我正在使用一个专有的Java库,将其数据直接保存到java.io.File ,但我需要能够读取数据,以便直接进行流式处理。 数据是二进制的,一些媒体文件。 java.io.File作为参数传递给这个库,但我不知道如何从中获取流。 有没有一些简单的方法来做到这一点,除了打开文件也读取和尝试同步读/写操作!? 我希望跳过写入文件系统部分,因为我从applet使用它,在这种情况下需要额外的权限。

如何确保文件已成功写入?

我正在为Java中的图形应用程序添加自动保存function。 应用程序定期自动保存当前文档,并在退出时自动保存。 当用户启动应用程序时,将重新加载自动保存文件。 如果自动保存文件以任何方式损坏(我假设文件处于保存状态时断电会这样做吗?),用户将失去工作。 如何防止这种情况并尽我所能保证自动保存文档处于一致状态? 更复杂的是,要自动保存文档,我需要保存一个.xml文件和几个.png文件。 此外,.png保存发生在JNI上的C代码中。 我当前的策略是使用扩展名.png.tmp编写每个.png,编写扩展名为.xml.tmp的.xml文件,然后重命名每个文件以删除.tmp部分,将.xml保留到最后。 在启动时,我只加载自动保存文档,如果我能找到.xml文件并忽略.xml.tmp文件。 在重命名新文档的.xml.tmp文件之前,我也不会删除以前的自动保存文档。 我想我对你写入磁盘时会发生什么的了解很少。 我知道在使用文件时,您可以拥有软件读/写缓冲区,以及操作系统和硬件缓冲区,并且所有这些都需要刷新。 我很困惑如何确切地知道什么东西真的被写入磁盘以及我可以做些什么来保护自己。 重命名操作是否可以确保刷新缓冲区?

使用java在目录中的文本文件中递归搜索?

我需要搜索目录和子目录的所有文件中的文本任何聪明的想法?