Tag: io

用Javarecursion列出目录中的所有文件

我有这个函数recursion地打印目录中的所有文件的名称。 问题是我的代码非常慢,因为每次迭代都必须访问远程networking设备。 我的计划是首先recursion地加载目录中的所有文件,然后使用正则expression式遍历所有文件,以过滤掉所有不需要的文件。 有没有人有更好的build议? public static printFnames(String sDir){ File[] faFiles = new File(sDir).listFiles(); for(File file: faFiles){ if(file.getName().matches("^(.*?)")){ System.out.println(file.getAbsolutePath()); } if(file.isDirectory()){ printFnames(file.getAbsolutePath()); } } } 这只是一个稍后的testing,我不打算使用这样的代码,而是要将每个匹配高级正则expression式的文件的path和修改date添加到数组中。

Python的file.flush()在做什么?

我在File Objects的Python 文档中find了这个: flush()不一定将文件的数据写入磁盘。 使用flush()后跟os.fsync()来确保这种行为。 所以我的问题是:Python的flush干什么的? 我以为它迫使写入数据到磁盘,但现在我看到它没有。 为什么?

获取一个OutputStream成一个string

将输出从java.io.OutputStream传递给Java中的String的最好方法是什么? 说我有方法: writeToStream(Object o, OutputStream out) 它将某些数据从对象写入给定的stream。 但是,我想尽可能轻松地将此输出转换为string。 我正在考虑写这样的课(未经testing): class StringOutputStream extends OutputStream { StringBuilder mBuf; public void write(int byte) throws IOException { mBuf.append((char) byte); } public String getString() { return mBuf.toString(); } } 但有没有更好的办法? 我只想运行一个testing!

什么是使用printf打印clock_t的正确方法?

我目前使用一个明确的%llu转换为unsigned long long并使用%llu来打印它,但是由于size_t具有%z说明符,为什么clock_t没有? 甚至没有一个macros。 也许我可以假设在一个x64系统(OS和CPU) size_t是8字节的长度(甚至在这种情况下,他们提供了%z ),但是clock_t呢?

我怎样才能从文件中删除重复的行?

我有一个列的文件。 如何删除文件中的重复行?

如何在java中模拟键盘按下?

我想运行一个Java程序,并让它模拟键盘按下。 所以它可以例如在一个焦点input框上键入一些文本。 这可能吗?

如何写文本文件的Java

以下代码不会生成文件(我无法在任何地方看到该文件)。 什么不见​​了? try { //create a temporary file String timeLog = new SimpleDateFormat("yyyyMMdd_HHmmss").format( Calendar.getInstance().getTime()); File logFile=new File(timeLog); BufferedWriter writer = new BufferedWriter(new FileWriter(logFile)); writer.write (string); //Close writer writer.close(); } catch(Exception e) { e.printStackTrace(); }

我是否需要closures()FileReader和BufferedReader?

我正在阅读本地文件使用一个BufferedReader包装在一个FileReader: BufferedReader reader = new BufferedReader(new FileReader(fileName)); // read the file // (error handling snipped) reader.close(); 我是否也需要close() FileReader ,或者封装处理? 我已经看到人们做这样的代码: FileReader fReader = new FileReader(fileName); BufferedReader bReader = new BufferedReader(fReader); // read the file // (error handling snipped) bReader.close(); fReader.close(); 这个方法是从一个servlet调用的,我想确保我不会打开任何句柄。

在c ++中快速读取文本文件

我目前正在用c ++编写一个程序,其中包括阅读大量的大文本文件。 每行至less有400,000行,极端情况下每行有4000或更多字符。 为了testing,我使用ifstream和cplusplus.com提供的实现来阅读其中的一个文件。 花了大约60秒,这太长了。 现在我想知道,是否有一个简单的方法来提高阅读速度? 编辑:我使用的代码是或多或less这个: string tmpString; ifstream txtFile(path); if(txtFile.is_open()) { while(txtFile.good()) { m_numLines++; getline(txtFile, tmpString); } txtFile.close(); } 编辑2:我读的文件只有82 MB大。 我主要说可能达到4000,因为我觉得可能有必要知道为了做缓冲。 编辑3:谢谢大家的回答,但看起来好像没有太大的空间来改善我的问题。 我不得不使用readline,因为我想要计算行数。 将ifstream实例化为二进制不会使读取速度更快。 我会尽可能地并行化,至less应该起作用。 编辑4:所以显然有一些事情我可以。 非常感谢你把这么多的时间放在这里,我很感激! =)

在C ++程序中使用scanf()比使用cin更快?

我不知道这是不是真的,但是当我在提供网站的问题之一阅读FAQ时,发现了一些东西,引起了我的注意: 检查你的input/输出方法。 在C ++中,使用cin和cout太慢了。 使用这些,你会保证不能解决任何问题,一个体面的数量input或输出。 改用printf和scanf。 有人可以澄清这一点? 真的在C ++程序中使用scanf()比使用cin >>东西更快吗? 如果是的话,那么在C ++程序中使用它是一个好习惯吗? 我认为这是C具体的,虽然我只是学习C ++ …