본문 바로가기

# 02/Java

[윤성우 열혈자바] 33-2. NIO.2 기반의 I/O 스트림 생성

반응형

I/O 스트림 생성이 복잡하다는 평이 있어서 일부를 대체하기 위해 NIO.2 가 나옴.




바이트 스트림의 생성 (NIO.2 기반) - 32챕터 일부 변경됨!


public static void main(String[] args) {

   Path fp = Paths.get("data.dat");

   

   try(DataOutputStream out = new DataOutputStream(Files.newOutputStream(fp))) {

      out.writeInt(370);

      out.writeDouble(3.14);

   }

   catch(IOException e) {

      e.printStackTrace();

   }

}




public static void main(String[] args) {

   Path fp = Paths.get("data.dat");

   

   try(DataInputStream in = new DataInputStream(Files.newInputStream(fp))) {

      int num1 = in.readInt();

      double num2 = in.readDouble();

      System.out.println(num1);

      System.out.println(num2);

   }

   catch(IOException e) {

      e.printStackTrace();

   }

}








문자 스트림의 생성 (NIO.2 기반) - 32챕터 일부 변경됨!


public static void main(String[] args) {

   String ks = "공부에 있어서 . . . ";

   String es = "Life is long if . . . ";

   Path fp = Paths.get("String.txt");

   

   try(BufferedWriter bw = Files.newBufferedWriter(fp)) {

      bw.write(ks, 0, ks.length());

      bw.newLine();

      bw.write(es, 0, es.length());

   }

   catch(IOException e) {

      e.printStackTrace();

   }

}




public static void main(String[] args) {

   Path fp = Paths.get("String.txt");

   

   try(BufferedReader br = Files.newBufferedReader(fp)) {

      String str;

      while(true) {

         str = br.readLine();

         if(str == null)

            break;

         System.out.println(str);

      }

   }

   catch(IOException e) {

      e.printStackTrace();

   }

}



반응형