java.ioパッケージ


java.lang / java.utilパッケージコメント

  • java.lang-importなしで使用可能(system、string、stringbuffer、object、...)
  • java.util—プログラムの開発に役立ついくつかの方法(日付、random、array)
  • を提供します.
  • collection - List, Set, Map
  • arraylist-アレイとは異なり、寸法が可変で、繰り返し、順序が許容され、空きX締結
  • が許容される.
  • ハッシュ・セット-反復X、シーケンスX-hashcode、およびequalsメソッドの再定義が必要
    (ショートカットキーcommand+option+sを再定義)
  • hashmap、hashtable-keyvalueペアとして保存され、高速検索に使用され、鍵が重複するとvalueが上書きされます.
    //arraylistはよく使われ、hashmapはたまに使われ、残りはほとんど使われません
  • I/Oとは?

  • 入力:キーボード、マウス、マイク/出力:ディスプレイ、プリンタ、オーディオ
  • 入力装置により受信データを処理し、処理結果を
  • に出力する.
  • I/O操作の複雑な理解を避けるためにjavaを使用します.iopackage

  • 1.フロー


    =フロー、パイプ、接続(一方向)
  • 入力ストリーム:キーボード、ファイル->java app
    出力ストリーム:java app->ディスプレイ
  • I/Oストリーム数=I/Oデバイス数(キーボード、ファイル、...)
  • 最上位の親(作成または作成していないすべてのクラス)
  • に必要なメソッド.
  • は変数を継承するために使用されます.
  • 配列オブジェクト(アップリンク)にすべてのタイプのオブジェクトを配置するには、Object[] list = new Object[3];を選択します.
  • 2.inputstream,reader=入力クラス

  • 抽象クラス-抽象メソッドが含まれ、オブジェクトを作成できません->サブクラスのオブジェクト作成
  • inputstream-バイト入力ストリーム(画像、ビデオ)
    (Aが「->16ビットchar->inputstream」と読み取った場合、すべて破壊されます)
  • reader-文字単位(2 byte単位)でデータを取得するため、韓国語、英語、...かもしれません.
  • 3.outputstream,writer=出力ストリーム

  • printstreamのみ出力(標準出力ストリーム)
  • outputstream-バイト(画像、ビデオ)
  • ライタ-文字単位の出力ストリーム(2 byte)
    //画像・ビデオファイル共有サイトJava開発を使用しない
    なし->文字入力/出力(reader、writer)に集中
  • 4. buffered

  • =フィルタフロー(機能強化用)
  • I/O動作速度の向上(必須ではない)
  • 標準I/O


    標準出力=コンソール
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintStream;
    
    public class IOTest1 {
    	public static void main(String[] args) {
        
    		InputStream input = System.in;
    		PrintStream output = System.out;
            // 다른 참조변수에 복사하여 사용 (가독성) 
            
    		System.out.println("메시지를 입력하세요.");
            // = output.println (코드짜는사람 마음)
            
    		try {
    			int data = 0;
    			while((data = input.read()) != -1 ) {
                // input.read() = System.in.read() (코드 짜는 사람 마음)
    				output.println(data);
                    // output.println = system.out.println
    			}
                
    		} catch (IOException e) {
    			e.printStackTrace();
                
    		} finally {	
    			try {
    				input.close();
    				output.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}			
    		}
    		System.out.println("프로그램 종료");
    	}
    }

    1. system.out.print()

    public static final InputStream in = null; public static final PrintStream out = null;
  • Javaの標準I/Oはシステムクラスのメンバ変数in,outは
  • を用いる.
  • 静的変数(呼び出しクラス名)、InputStream、PrintStreamタイプ
  • InputStreamオブジェクトを作成できません(抽象クラス)
    ->参照変数nullで初期化->の下部に作成および割り当て(作成されたオブジェクトを知る必要はありません)
  • system.in.read()->エラーなし
    input,inは2つのオブジェクトを参照します(通常)
  • 2.他の参照変数にコピーして使用

  • は可読性である.ハーモニーを編んだ人の心
  • input.read() = system.in.read()(別の参照変数inputにコピーして使用)
  • output.println = system.out.println
  • 2. close

  • input.close();/output.close();
    I/Oフローをオフにする必要があります
  • 3. throws

  • I/O動作常に異常
  • read()->throws IOException(プライマリメソッド)またはtry~catch
    //throwsでは例外処理ハンドルはサポートされていませんが、I/O例
  • となります.
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintStream;
    
    public class IOTest1 {
    	public static void main(String[] args) throws IOException {
    
    		System.out.println("메시지를 입력하세요.");
    		
    	    int data = 0;
    		while((data = System.in.read()) != -1 ) {
    			System.out.print(data);
    		}
    		System.in.close();
    		System.out.close();
    		System.out.println("프로그램 종료");
    	}
    }

    4.形状変換

    InputStream input = System.in;
    int data = 0;
    while ((data = input.read()) != -1) {
    	output.print(data);
    }
  • InputStream(10バイト)->データint(32ビット)と入力
    デフォルトのデータ型の暗黙的な変換(小->大)
  • ()メソッドは、ユーザがキーボードから入力データから1バイト分のデータを読み出し、整数->数字
  • を返す.
    InputStream input = System.in;
    int data = 0;
    while ((data = input.read()) != -1) {
    	output.print((char) data);
    }
  • データ(32ビット)->2バイト(明示的な変換)->文字出力
  • 英語、数字は関係ありませんが、ハングルは解読されています(バイト単位のため)
    ->InputStreamではなくリーダー(2バイト単位)を使用し、ハングルを破壊しません
  • ファイルI/O


    ip apiがファイルI/Oに存在しても過言ではない
    fileinputstreamは書き込む必要はありません(1バイトの読み取り中断-画像、ビデオ)
    filereader
    iotest3
  • ioexceptionじゃないexceptionなら全部投げた
  • filereader
  • data.txt->プロジェクトの下部に近づかなければなりません
    (new, file)
  • 文字に変換しない場合、ファイルは整数
  • です.
    iotest4

  • buffered=フィルタ(実行する必要がなく、より高速)

  • ./src/IOTest4.JAva=私

  • currentTimeMillis()
    たまに
    静的メソッド(新しいオブジェクトを作成する必要がなく->クラス内のオブジェクトメモリを使用できます.私は1つのメソッドしか使用しません)
    メソッド呼び出しの時間情報をlongタイプに復元
    野戦環の前後の時間を求め、野戦環の運転に要する時間を確定する.

  • bufferの貼り付け=データを一度に解放し、I/O->を高速化
    =>10秒から6秒(ファイルが大きい場合は大きな差)
    =>これをフィルタフローと呼ぶ

  • BufferedReader buffReader = new BufferedReader(reader);
    作成者メソッドのパラメータはオブジェクトです

  • BufferedReaderのパラメータタイプreader->最上位->任意のパラメータとして使用可能(アップリンク)

  • BufferedReaderはreaderをメンバー変数として指定します(作成者によって実行されます).

  • BufferedReader buffReader = new BufferedReader(new FileReader("./src/IOTest4.java"))
    オブジェクトはパラメータ
    reader変数を宣言する必要がなく、メモリを節約できることを示します.
    可読性の面では、変数を宣言することが望ましい(2行1行を推奨)

  • バッファリーダメソッドのthis
    別のコンストラクション関数(親)を呼び出します(パラメータとして受信する方法、たとえばインデックス、デバッガとして)、superは親メソッドを呼び出します.
  • //bufferedreaderとfileereaderをマージする必要があります
    スピードを上げる
    iotest6

  • FileOutputStream
    出力したいデータへの接続(バイト単位)

  • 数字、並べ替え可能、文字は

  • data.txtファイルを削除した後
    実行時にファイルを作成する->整数データを出力し、ハングルを出力しません
    韓国語の破壊を避けるためにfilewriter(iotest 7)を使用する

  • FileInputStream input =
    new BufferedInputStream();
    パラメータはFileInputStreamでなければなりません

  • printStream
    system.out.print(標準出力)
  • iotest8
    総合的に書き終わりました.
  • buffReader.readLine()
    行で検索可能(カンマで区切られた)
    ->文字列タイプに割り当てられた変数(データ)
    //バッファリーダを使用しない場合は、
  • のみを文字で読み取ることができます.
  • split
  • Integer.parseInt(score)=
  • totalcount=line数=学生数
    //iotest 4変形スナップショット
  • バッファリーダ
    1.2バイトスピードも速い行単位で読み取り可能
  • ガイド線メソッドが読み取り可能でない場合
    null return 3
  • 教材にない例
    スナップショットスキャナテスト(無限ループ故意回転)
    バッファカードリーダーとカードリーダーは面倒なので、スキャンクラス(import java.util.Scanner)を提供します.
  • system.in=標準入力
    ->キーボード(ファイルではない)から入力したデータ線を読み込むことができます
    //ではなくnew fileinputstream(「test.txt」)を選択した場合
    ロー別読み出しストリーム
  • NextintではなくNextline
    数字と文字が入力される場合があります.
  • equals:アドレスが異なるがコンテンツが同じ場合true
  • Webを学習せずにユーザからデータ入力を取得するには
    学習I/Oが必要
    Webの場合はブラウザに入力してください
    入力
  • 1 a->デジタルフォーマットエクスポート
    1 aをintに変更したいです.
    ->例外スナップショットの処理
    throwsまたはtry~catch