詳細の入力ストリームIOストリーム

1 IO

  • BigDecimalを/ BigIntegerを

概要:

  • BigDecimalの:正確な浮動小数点演算を解決するために使用されます。
  • BigIntegerの:大きな整数演算を解決するために使用されます。

オブジェクトを作成します。

  • BigDecimal.valueOf(2)。
  • 一般的な方法:アドオン(BigDecimalをBD):DO加算器
  • substract(BigDecimalのはBD):減算を行います
  • 乗算(BigDecimalのはBD):乗算を行います
  • ディバイド(BigDecimalをBD):分裂を行うには
  • 分割(BigDecimalのBD、予約桁、丸め):別の使用に加えて
  • setScale(丸め予約桁):同上
  • POW(int型n)を:いくつかの電力需要のデータ
public class Test2_BigD {
       public static void main(String[] args) {
              double a = new Scanner(System.in).nextDouble();
              double b = new Scanner(System.in).nextDouble();
              System.out.println(a+b);
              System.out.println(a-b);
              System.out.println(a*b);
              System.out.println(a/b);//不精确              
              System.out.println(===上面的除法不精确===);
              BigDecimal bd1 = BigDecimal.valueOf(a);
              BigDecimal bd2 = BigDecimal.valueOf(b);
              BigDecimal bd3;
              bd3=bd1.add(bd2);
              System.out.println(bd3.doubleValue());              
              bd3=bd1.subtract(bd2);
              System.out.println(bd3.doubleValue());              
              bd3=bd1.multiply(bd2);
              System.out.println(bd3.doubleValue());
              
//           bd3=bd1.divide(bd2);//报错除不尽
              //保留位数和舍入方式
              bd3=bd1.divide(bd2,5,BigDecimal.ROUND_HALF_UP);
              bd3=bd3.setScale(2, BigDecimal.ROUND_HALF_UP);//保留两位
              System.out.println(bd3.doubleValue());              
       }
}
  • IOはじめに

継承構造:

  • 入力換算でプログラム(リード)、処理出力に対してOUT / IN(書き込まれる)です。
  • データ処理ユニットによっては、Javaでは、バイトストリームと文字ストリームへの
    ファイル

バイトストリーム:バイナリファイルの

> InputStream 
> --FileInputStream
> --BufferedInputStream 
> --ObjectInputStream OutputStream
> --FileOutputStream
> --BufferedOutputStream
> --ObjectOutputStream

文字ストリーム:テキストファイルのため。歪み現象を起こしやすい書く、エンコーディングを指定するには、読み取りと書き込みの最良のセットがUTF-8であります

>  Writer
>   	-- BufferedWriter
>    	-- OutputStreamWriter Reader
>     	-- BufferedReader
>      	-- InputStreamReader
>       	-- PrintWriter/PrintStream
  • 流れの概念
  • 抽象データへの読み取りおよび書き込みデータは、パイプラインに流れます。
  • 流れは一方向にのみ流れることができます
  • 入力ストリームを読み込むために使用されます
  • 出力ストリームに書き込まアウト
  • データは、一次配列の最初から最後まで読むことができます

  • ファイルのファイルストリーム

概要:

  • ディスクパッケージパス文字列は、操作の1つは、このパス上で実行することができます。ファイルパス、フォルダパスをカプセル化するために使用することができ、パスが存在しません。

オブジェクトを作成します。

  • ファイル(文字列のパス名)
  • 抽象パス名に指定したパス名文字列を変換して、新しいFileのインスタンスを作成します。

一般的な方法:

  • ファイル、フォルダは、()の長さ属性:ファイルのバイト数を
  • ()が存在する:がある場合は、真の存在を返します。
  • ISFILE():かどうかは、ファイルは、ファイルには、trueを返します
  • isDirectory():フォルダはtrueを返し、フォルダのファイルがあるかどうか
  • getName():ファイル/フォルダ名を取得します。
  • getParent():親フォルダへのパスを取得します。
  • )(getAbsolutePath:ファイルのフルパスを取得します。

作成し、削除します。

  • でCreateNewFile():新しいファイルを作成し、フォルダが異常に存在しない、ファイルがすでに存在している、偽
  • mkdirs():新しい多層フォルダは\ \ B \ Cを存在しません。
  • MKDIR():新しい単層は存在しないフォルダ\ A
  • 削除():ファイルの削除、削除の空のフォルダ

フォルダ一覧:

  • リストは():ファイル名を含む、文字列を[]を返します
  • LISTFILES():] [ファイルを返すファイルオブジェクトが含まれています

バイトストリームを読みます

  • ストリーム内の文字によって文字は、バイトのバイトストリームであります
  • 文字でのJavaは2バイトで構成されています。バイトストリームは、最も基本的で、すべてのInputStreamとOutputStreamのサブクラスは、バイナリデータを扱うために主に使用されています。

ストリーミングは、ユーザのコンピュータまたは逐次的に、ビデオサーバから圧縮、リアルタイム伝送した後、特定の圧縮されたパケットに解析全体の三次元オーディオメディアやビデオなどのマルチメディアファイルを主に指します。ストリーミングモードを使用したシステムでは、ユーザはすべてのダウンロードを使用してファイル全体をダウンロードするように待機する必要はありません、ユーザーのコンピュータの減圧でデバイスを使用し始めて、完全な、しかし唯一の遅延の秒数秒または数十の後であります/ V、3D再生のための他のマルチメディアファイルを圧縮・解凍後の表示。この時点で、マルチメディアファイルの残りの部分は、バックグラウンドサーバにダウンロードしていきます。

文字ストリームを読み取ります。

  • 一般的に、プレーンテキストデータで使用されます。
  • リーダーの抽象クラス
  • 文字ストリームを読み込むための抽象クラスです。
   常用方法:
    -- int read() :读取单个字符。 
    -- int read(char[] cbuf) :将字符读入数组。 
    -- abstract  int read(char[] cbuf, int off, int len) :将字符读入数组的某一部分。 
    -- int read(CharBuffer target) :试图将字符读入指定的字符缓冲区。 
    -- abstract  void close() :关闭该流并释放与之关联的所有资源。

ファイルを読みます

public class tt {
    public static void main(String[] args) throws Exception {
       method1();// 字节读取
       method2();//字符读取
    }
     
    private static void method2() throws Exception {
       //字符流读图片乱码
//     BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(new File("D:\\teach\\1.jpg"))));

       BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(new File("D:\\teach\\a\\1.txt"))));
//     System.out.println(in.readLine());
//     System.out.println(in.readLine());//null读到/n/r       
       String line = "";
       while((line = in.readLine())!=null) {//一行一行读
           System.out.println(line);
       }       
       in.close();
    }
 
    private static void method1() throws Exception {
       long s = System.currentTimeMillis();
       InputStream in = new FileInputStream("D:\\teach\\1.jpg");

       int b = 0;
       while ((b = in.read()) != -1) {
           // System.out.println(b);
       }

       s = System.currentTimeMillis() - s;
       System.out.println(s + "--");// 7515

       long ss = System.currentTimeMillis();
       InputStream in2 = new BufferedInputStream(new FileInputStream("D:\\teach\\1.jpg"));
       int b2 = 0;
       while ((b2 = in2.read()) != -1) {
           // System.out.println(b2);
       }

       ss = System.currentTimeMillis() - ss;
       System.out.println(ss + "==");// 32
       
       in.close();
       in2.close();
    }
}
公開された36元の記事 ウォン称賛13 ビュー1066

おすすめ

転載: blog.csdn.net/weixin_44598691/article/details/104774395