Java
 Computer >> コンピューター >  >> プログラミング >> Java

JavaのARMとは何ですか?


リソースは、AutoClosableインターフェイスを実装するオブジェクトです。プログラムでリソースを使用するときは常に、使用後にリソースを閉じることをお勧めします。

最初、このタスクはfinallyブロックを使用して実行されます。

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;
public class FinalExample {
   public static void main(String[] args) throws IOException {
      File file = null;
      FileInputStream inputStream = null;
      try {
         file = new File("D:\\source\\sample.txt");
         inputStream = new FileInputStream(file);
         Scanner sc = new Scanner(inputStream);
         while(sc.hasNextLine()) {
            System.out.println(sc.nextLine());
         }
      } catch(IOException ioe) {
         ioe.printStackTrace();
      } finally {
         inputStream.close();
      }
   }
}

出力

This is a sample file with sample text

ARM

JavaのARMは自動リソース管理の略で、Java7で導入されました。リソースは、tryブロックで宣言する必要があり、ブロックの最後で自動的に閉じられます。これはtry-withresourcesブロックとも呼ばれ、これで宣言するオブジェクトはリソースである必要があります。つまり、タイプは AutoClosable である必要があります。

以下は、try-with-resourcesステートメントの構文です-

try(ClassName obj = new ClassName()){
   //code……
}

JSE7以降、try-with-resourcesステートメントが導入されました。これでは、tryブロックで1つ以上のリソースを宣言し、これらは使用後に自動的に閉じられます。 (tryブロックの最後)

tryブロックで宣言するリソースは、java.lang.AutoCloseableクラスを拡張する必要があります。

Following program demonstrates the try-with-resources in Java.
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;
public class FinalExample {
   public static void main(String[] args) throws IOException {
      try(FileInputStream inputStream = new FileInputStream(new File("D:\\source\\sample.txt"));) {
         Scanner sc = new Scanner(inputStream);
         while(sc.hasNextLine()) {
            System.out.println(sc.nextLine());
         }
      } catch(IOException ioe) {
         ioe.printStackTrace();
      }
   }
}

出力

This is a sample file with sample text

Javaの複数のリソース

また、try-withリソースで複数のリソースを宣言することもでき、それらはすべて、ブロックの最後で一度に閉じられます。

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCopying {
   public static void main(String[] args) {
      try(FileInputStream inS = new FileInputStream(new File("E:\\Test\\sample.txt"));
      FileOutputStream outS = new FileOutputStream(new File("E:\\Test\\duplicate.txt"))){
         byte[] buffer = new byte[1024];
         int length;
         while ((length = inS.read(buffer)) > 0) {
            outS.write(buffer, 0, length);
         }
         System.out.println("File copied successfully!!");
      } catch(IOException ioe) {
         ioe.printStackTrace();
      }
   }
}

出力

File copied successfully!!

  1. JavaのStringIndexOutOfBoundsExceptionとは何ですか?

    文字列は、Javaで文字のシーケンスを格納するために使用され、オブジェクトとして扱われます。 java.langパッケージのStringクラスは、文字列を表します。 文字列は、(他のオブジェクトのように)新しいキーワードを使用するか、(他のプリミティブデータ型のように)リテラルに値を割り当てることによって作成できます。 String stringObject = new String("Hello how are you"); String stringLiteral = "Welcome to Tutorialspoint"; 文字列には文字の配列

  2. JavaのArrayIndexOutOfBoundsExceptionとは何ですか?

    配列はデータ構造/コンテナ/オブジェクトです 同じタイプの要素の固定サイズの順次コレクションを格納します。配列のサイズ/長さは作成時に決定されます。 配列内の要素の位置は、インデックスまたは添え字と呼ばれます。配列の最初の要素はインデックス0に格納され、2番目の要素はインデックス1に格納されます。 配列内の各要素には、配列の名前とそれに続く角かっこで囲まれた必要な要素のインデックスを含む式を使用してアクセスします。 System.out.println(myArray[3]); //prints 1457 一般に、配列は固定サイズであり、各要素はインデックスを使用してアクセスされま