Tag: io

如何将多个不同的InputStream链接到一个InputStream中

我想知道是否有任何意识的方式链接多个InputStream到一个连续的Java(或斯卡拉)InputStream。 我需要的是parsing从FTP服务器通过networking加载的平面文件。 我想要做的是取文件[1..N],打开stream,然后将它们合并成一个stream。 所以当file1结束时,我想从file2开始读取等等,直到到达fileN的末尾。 我需要以特定的顺序读取这些文件,数据来自遗留系统,这些遗留系统会以barches方式生成文件,因此数据取决于另一个文件中的数据,但是我想将它们作为一个连续的stream处理,以简化我的域逻辑接口。 我search了四周,发现PipedInputStream,但我不积极,这是我所需要的。 一个例子会有帮助。

InputStream与InputStreamReader

在InputStreamReader上使用InputStream有什么好处,反之亦然。 这里是一个InputStream实例的例子: InputStream input = new FileInputStream("c:\\data\\input-text.txt"); int data = input.read(); while(data != -1) { //do something with data… doSomethingWithData(data); data = input.read(); } input.close(); 下面是一个使用InputStreamReader的例子(显然在InputStream的帮助下): InputStream inputStream = new FileInputStream("c:\\data\\input.txt"); Reader reader = new InputStreamReader(inputStream); int data = reader.read(); while(data != -1){ char theChar = (char) data; data = reader.read(); } reader.close(); 读者是否以特殊的方式处理数据? 只是试图让我的头在Java中的整个i/ostream数据方面。

在Perl中打开和读取文件的最佳方式是什么?

请注意 – 我不是在寻找打开/读取文件的“正确”方式,也不是每次打开/读取文件的方式。 我只是想找出大多数人使用什么方式,也许在同一时间学习一些新的方法:)* 我的Perl程序中一个非常常见的代码块是打开一个文件并读取或写入。 我已经看到了很多这样做的方式,而且我这几年来执行这个任务的风格已经改变了。 我只是想知道什么是最好的 (如果有最好的方法)是这样做的? 我曾经打开过这样的文件: my $input_file = "/path/to/my/file"; open INPUT_FILE, "<$input_file" || die "Can't open $input_file: $!\n"; 但是我认为这有错误陷阱的问题。 添加括号似乎可以修复错误陷印: open (INPUT_FILE, "<$input_file") || die "Can't open $input_file: $!\n"; 我知道你也可以将一个文件句柄分配给一个variables,所以不用像上面那样使用“INPUT_FILE”,我可以使用$ input_filehandle – 这样更好吗? 对于阅读文件,如果它很小,那么这个文件是否有什么问题呢? my @array = <INPUT_FILE>; 要么 my $file_contents = join( "\n", <INPUT_FILE> ); 或者你应该总是循环,就像这样: my @array; while (<INPUT_FILE>) […]

IO的装饰模式

我已经在维基百科中读过Decorator模式用于.Net和Java IO类。 有人可以解释如何使用? 和一个可能的例子,它的好处是什么? 在wiki上有一个窗口窗体的例子,但我想知道它是如何发生在IO类。

如何在纯C / C ++(cout / printf)中显示进度指示器?

我正在用C ++编写一个控制台程序来下载一个大文件。 我已经知道文件的大小,我开始工作线程下载。 我想显示一个进度指示器,让它看起来更酷。 如何在不同的时间显示不同的string,但在相同的位置,在cout或printf?

PHP的标准input?

我知道PHP通常用于没有标准input的Web开发,但是PHP声称可以作为通用脚本语言使用,如果你遵循的是基于时髦的基于Web的约定。 我知道PHP打印到stdout (或任何你想调用它)与print和echo ,这是很简单,但我想知道如何一个PHP脚本可能从stdininputstdin (具体与fgetc() ,但任何inputfunction是好的),或者这甚至可能?

为什么Ruby没有真正的StringBuffer或者StringIO?

我最近读了一篇关于在Ruby中使用StringIO的好post 。 然而作者没有提到的是, StringIO只是一个“我”。 没有“O” 你不能这样做,例如: s = StringIO.new s << 'foo' s << 'bar' s.to_s # => should be "foo\nbar" # => really is ''` Ruby确实需要一个StringBuffer,就像Java一样。 StringBuffers有两个重要的用途。 首先,他们让你testing一下Ruby的StringIO的输出结果。 其次,它们对于从小部件中构build长弦是有用的 – Joel一再提醒我们的事情是非常缓慢的。 有没有好的替代品? Ruby中的string是可变的,但这并不意味着我们应该总是依赖于这个function。 如果stuff很大,那么这个性能和内存要求就非常糟糕。 result = stuff.map(&:to_s).join(' ') 在Java中这样做的“正确”方式是: result = StringBuffer.new("") for(String s : stuff) { result.append(s); } 虽然我的Java有点生疏。

什么是&&意思?

我对这个expression有些困惑: gcc -c -g program.c >& compiler.txt 我知道&>filename名将redirectstdout和stderr文件的文件filename 。 但在这种情况下,&符号大于符号。 它看起来像M>&N的forms,其中M和N是文件描述符。 在上面的代码片断中, M=1和N='compiler.txt' ? 这与以下不同: gcc -c -g program.c > compiler.txt (ampersand removed) 我的理解是,每个打开的文件都与一个大于2的文件描述符关联。这是正确的吗? 如果是这样,是一个文件名与其文件描述符可以互换作为redirect的目标?

一个对象是否应该把自己写到一个文件中,或者另一个对象是否应该用它来执行I / O?

注意:对于长问题抱歉! 我试图理解面向对象背后的一些关键领域,我不能以某种方式来决定我的特定问题。 假设我有一个充满可爱数据的对象。 classbob。 Bob myBob = new Bob("This string is data"); 假设我想将myBob的内容保存到一个xml文件(bob.xml) 我应该有一个对象作用于鲍勃写出的内容,或者我应该有myBob做这个? 案例1:对目标行事 Writer myWriter = new Writer(myBob, "C:\\bob.xml"); 情况2:保存方法 myBob.Save("C:\\bob.xml"); 有些人正在select一个选项,因为这意味着如果写入文件的代码改变了,不需要在每个Save方法中更新; 促进代码重用我想。 我的问题是获取所有数据的对象可能有私人数据没有访问者。 scheme2的情况是该方法仅对对象所持有的数据起作用,这就是应该的方式。 没有其他物体的干扰。 或者是我的问题的“案件依赖”问题之一的答案? 如果是这样,你怎么知道一种方法比另一种方法更受欢迎?

Java:NIO和NIO.2的区别究竟是什么?

我不太明白他们彼此有什么不同,所以我对这两个软件包有一些疑问。 在Google上查看一下后,似乎Oracle决定使用更新的,增强的NIO.2软件包来更新NIO软件包,作为JDK7版本的一部分。 NIO软件包的性能与NIO.2软件包相比如何? 从NIO到NIO.2什么大的变化? (如新的方法,function) 为什么最初的NIO包需要更新? NIO.2现在是NIO套餐的代名词吗? 这不是我想要在我的代码中使用旧的包,我只是很好奇这一点。 请告诉我他们的区别?