重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

今入出力について勉強しているのですが、基本的な部分の理解にかけていて困っています。どなたか以下の点についてご返事いただけないでしょうか。

1.バッファとは・・・
2.バイト配列とは・・・
3.markメソッドの引数に0を入れても-の数字を入れてもエラーがでないんですがどんな数値を入れておいてもresetされるんですか?markメソッドについて教えてください。

4.入出力について詳しく述べられているサイトがあれば教えてください。

よろしくお願いします。

A 回答 (3件)

こんばんわ、、、ふたたびです


mark(int readlimit)のreadlimitとは何バイト分先読みできるかということです。
まず、mark(int readlimit)がよばれると
BufferedInputStreamクラスのprotected int marklimitフィールドにreadlimitの値がわたされます。
それとともにprotected int markposフィールドに現在のオフセット位置がわたされます。
そして、reset()メソッドが呼び出されると上記のフィールドmarkposの値をもとにオフセット位置を戻すのですが、marklimitフィールドが参照されている場所というのはprivate fill() throws IOException
というメソッドが呼ばれたときだけなのです。
しかもそのメソッドの中でも目安程度にしか使われておらず、「とりあえずはmarklimitとデフォルトで確保したバッファ配列を比べてみてmarklimitのほうがおおきかったら、marklimitの値をもとに配列を確保しなおす」程度の扱いです(笑)(正確に細かくいうと多少違いますが、イメージ的にはこんな感じです)。
仮にmarklimitを基準に確保しなおしたバッファで足りなくなったとしても、オーバーフローしないようにバッファを新たに確保しなおしてしまいます。
だらだらとした説明になりましたがおわかりいただけたでしょうか??
    • good
    • 0
この回答へのお礼

とってもわかりやすかったです。ありがとうございます!

お礼日時:2002/07/18 14:17

1、一時的にメモリへデータを保存しておくこと


2、データを1バイトづつバイト型変数の配列に格納すること
3、mark(int)→マーク位置を設定するメソッド。mark→現在のマーク位置を示すフィールド
reset()→マーク位置までバッファを戻すメソッド
4、APIリファレンス

こんな感じでよろしいでしょうか?

この回答への補足

ありがとうございます。

しかし、markの引数に100を入れてもマイナスの数を入れても同じ結果が得られるのですが・・・どういうことなんですか?

補足日時:2002/07/17 17:21
    • good
    • 0

下記のサイトはJavaの基礎やサンプルがいっぱい載っていてわかりやすいですよ。


参考になればいいんですが・・・・。

参考URL:http://members11.tsukaeru.net/msugai/java/index. …
    • good
    • 0
この回答へのお礼

ありがとうございました。参考にしてみます。
でもサイトにはバッファとバイト配列の意味が乗っていなかったんですが・・・

お礼日時:2002/07/17 10:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!