小さじ 1 杯とシャベルを使って、穴から汚れを取り除きます。
ストリームが具体的であり、ストリームからの読み取りは、どこから行われたかに関係なく、その入力を消費することを理解しています
正しい。ティースプーンとシャベルはどちらも穴から汚れを取り除きます。ダートを非同期に (つまり、並行して) 除去している場合は、誰がどのダートを持っているかについて争いになる可能性があります。そのため、並行構造を使用して、相互に排他的なアクセスを提供します。アクセスが同時でない場合、つまり...
1) 小さじ 1 杯以上の土を穴から
移動させる 2) 穴から土をシャベルで
1 杯以上移動させる 3) 穴から小さじ 1 杯以上の土を移動させる
...
問題ない。ティースプーンとスコップで汚れを落とします。しかし、一度汚れを落としてしまうと、同じ汚れにはなりません。お役に立てれば。シャベルを始めましょう、ティースプーンを使います。:)
高速反射が見つかったので、ストリーム、特にバッファリングされたリーダーの共有には十分注意してください。ストリームから必要以上のバイトをむさぼり食う可能性があるためです。そのため、他の入力ストリーム (またはリーダー) に戻ると、次のようになります。大量のバイトがスキップされました。
同じ入力ストリームから読み取ることができる証明:
import java.io.*;
public class w {
public static void main(String[] args) throws Exception {
InputStream input = new FileInputStream("myfile.txt");
DataInputStream b = new DataInputStream(input);
int data, count = 0;
// read first 20 characters with DataInputStream
while ((data = b.read()) != -1 && ++count < 20) {
System.out.print((char) data);
}
// if prematurely interrupted because of count
// then spit out last char grabbed
if (data != -1)
System.out.print((char) data);
// read remainder of file with underlying InputStream
while ((data = input.read()) != -1) {
System.out.print((char) data);
}
b.close();
}
}
入力ファイル:
hello OP
this is
a file
with some basic text
to see how this
works when moving dirt
from a hole with a teaspoon
and a shovel
出力:
hello OP
this is
a file
with some basic text
to see how this
works when moving dirt
from a hole with a teaspoon
and a shovel
BufferedReader がストリームから多くの文字をむさぼり食うため、動作が保証されていないことを示す証拠:
import java.io.*;
public class w {
public static void main(String[] args) throws Exception {
InputStream input = new FileInputStream("myfile.txt");
BufferedReader b = new BufferedReader(new InputStreamReader(input));
// read three lines with BufferedReader
String line;
for (int i = 0; (line = b.readLine()) != null && i < 3; ++i) {
System.out.println(line);
}
// read remainder of file with underlying InputStream
int data;
while ((data = input.read()) != -1) {
System.out.print((char) data);
}
b.close();
}
}
入力ファイル (上記と同じ):
hello OP
this is
a file
with some basic text
to see how this
works when moving dirt
from a hole with a teaspoon
and a shovel
出力:
hello OP
this is
a file