InputStream IO corriente de Detallado

1 IO

  • BigDecimal / BigInteger

Descripción general:

  • BigDecimal: utilizado para resolver operaciones de punto flotante precisas.
  • BigInteger: se utiliza para resolver los grandes aritmética de enteros.

Crear un objeto:

  • BigDecimal.valueOf (2);
  • Los métodos comunes: add (BigDecimal dl): hacer víbora
  • restar (BigDecimal BD): hacer la resta
  • multiplicar (BigDecimal BD): hacer multiplicación
  • dividir (BigDecimal dl): hacer las divisiones
  • Divide (BigDecimal bd, Reservas dígitos, redondeo): Además de la utilización de diferentes
  • setScale (dígitos de reserva, de redondeo): Igual que el anterior
  • pow (n int): datos de varios demanda de potencia
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 Introducción

estructura de herencia:

  • de entrada / salida con respecto al programa en términos de la entrada (de lectura) y de salida de proceso (escrito) es.
  • En Java, en función de los datos de las unidades de procesamiento, en un flujo de bytes y flujo de caracteres
    del archivo

flujo de bytes: para archivos binarios

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

flujo de caracteres: para archivos de texto. Escribe propenso a fenómenos de distorsión, el mejor conjunto de escritura y lectura para especificar la codificación es UTF-8

>  Writer
>   	-- BufferedWriter
>    	-- OutputStreamWriter Reader
>     	-- BufferedReader
>      	-- InputStreamReader
>       	-- PrintWriter/PrintStream
  • Concepto de flujo
  • Leer y escribir datos en datos abstractos de flujo en la tubería.
  • Corriente puede fluir sólo en una dirección
  • Se utiliza para leer en el flujo de entrada
  • Escrito a cabo la secuencia de salida
  • Los datos sólo se puede leer de principio a fin de la secuencia primaria

  • secuencia de archivo Archivo

Descripción general:

  • Una cadena de ruta que contiene el disco, una operación puede llevarse a cabo en este camino. Se puede utilizar para encapsular la ruta del archivo, la ruta de la carpeta, no existe la ruta de acceso.

Crear un objeto:

  • Archivo (nombre de ruta de cuerda)
  • Para crear una nueva instancia del archivo mediante la conversión de la cadena de ruta dada en una vía de acceso abstracta.

Los métodos más comunes:

  • Archivo, carpeta atributos de longitud (): la cantidad de bytes del archivo
  • existe (): si la hay, devuelve verdadero presencia
  • isFile (): si el archivo, el archivo devuelve verdadero
  • isDirectory (): si la carpeta es un archivo de carpetas devuelve true
  • getName (): Obtener Nombre de archivo / carpeta
  • getParent (): Obtiene la ruta de la carpeta principal
  • Obtener la ruta completa del archivo: getAbsolutePath ()

Crear, borrar:

  • createNewFile (): crear un nuevo archivo, carpeta no existe de forma anormal, el archivo ya existe, falsa
  • mkdirs (): Nueva carpeta de múltiples capas no existe \ a \ b \ c
  • mkdir (): Nueva sola capa no existe la carpeta \ a
  • Eliminar (): Eliminar archivos, carpetas vacías de borrado

Lista de carpetas:

  • list (): devuelve la cadena [], incluyendo el nombre del archivo
  • listFiles (): devuelve el archivo [], contiene el objeto de archivo

Leer byte de la secuencia:

  • Es un flujo de bytes de bytes, carácter por carácter en el flujo de
  • Java en el carácter se compone de dos bytes. Flujo de bytes es el más básico, todas las subclases de InputStream y OutputStream se utilizan principalmente para trabajar con datos binarios.

Streaming se refiere principalmente a la totalidad de los medios tridimensionales de audio y archivos de vídeo y otros dispositivos multimedia analizados en un paquete comprimido específica después de la transmisión de compresión, en tiempo real desde el servidor de vídeo a un ordenador de usuario o de forma secuencial. En el sistema utilizando el modo de transmisión, el usuario no tiene que esperar a fin de descargar el archivo completo utilizando toda la descarga se ha completado, pero sólo después de unos segundos o decenas de segundos de retardo de comenzar a utilizar el dispositivo en una descompresión del ordenador del usuario un comprimido V /, 3D y otros archivos multimedia para la reproducción y visualización después de la descompresión. En este punto, la parte restante de los archivos multimedia continuará descarga en el servidor de fondo.

flujo de caracteres se lee:

  • De uso general en los datos de texto sin formato.
  • clase Reader Resumen
  • clase abstracta para leer streams de caracteres.
   常用方法:
    -- int read() :读取单个字符。 
    -- int read(char[] cbuf) :将字符读入数组。 
    -- abstract  int read(char[] cbuf, int off, int len) :将字符读入数组的某一部分。 
    -- int read(CharBuffer target) :试图将字符读入指定的字符缓冲区。 
    -- abstract  void close() :关闭该流并释放与之关联的所有资源。

Leer el archivo

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();
    }
}
Publicado 36 artículos originales · alabanza ganado 13 · vistas 1066

Supongo que te gusta

Origin blog.csdn.net/weixin_44598691/article/details/104774395
Recomendado
Clasificación