JDK1.7은 새 파일 작동 클래스 java.nio.file 패키지를 소개합니다. 파일이 숨겨진 파일인지 확인하거나 파일이 읽기 전용 파일인지 확인하는 등 파일을 작동하는 데 많은 유용한 방법이 포함 된 파일 클래스가 있습니다. 개발자는 파일을 사용하여 전체 파일을 메모리로 읽으려면 파일을 사용 할 수 있습니다. 이 메소드는 바이트 배열을 반환하고 문자열 생성자에게 결과를 전달하여 문자열 출력을 생성 할 수 있습니다. 이 메소드는 파일의 모든 바이트 컨텐츠를 읽을 때 IO 예외가 있는지 또는 선택되지 않은 예외가 있는지 여부에 관계없이 리소스가 닫히도록합니다. 즉, 파일을 마지막 블록 내용으로 읽은 후 파일을 닫을 필요가 없습니다. 이 방법은 메모리 공간이 부족할 수 있으므로 큰 파일을 읽는 데 적합하지 않습니다 . 개발자는 예외 또는 구문 분석 오류를 피하기 위해 파일의 문자 인코딩을 지정해야합니다.
readAllBytes (Path) 메소드의 소스 코드 :
<span style = "font-size : 32px;"> </span> <span style = "font-size : 18px;">/*** 파일에서 모든 바이트를 읽습니다. 이 메소드는 모든 바이트가 읽거나 I/O 오류 또는 기타 런타임 * 예외가 발생하면 파일이 닫히도록합니다. *이 방법은 모든 바이트를 바이트 배열로 읽는 것이 편리한 간단한 경우에 대한 것입니다. 큰 파일로 읽기위한 것이 아닙니다. * * * @param path * 파일로가는 경로 * * @return 파일에서 읽은 바이트를 포함하는 바이트 배열 * * @throws ioexception * * @throws ioexception *에서 읽는 경우 하천에서 읽는 경우 * 파일의 2g보다 큰 경우 메모리 오버플로 예외가 발생할 수 있습니다. 2GB} * @Throws SecurityException * 기본 공급자의 경우 보안 관리자가 설치되고 {@link securityManager#checkread (stread) checkread} * 메서드가 호출되어 파일에 대한 액세스를 확인합니다. */</span> <span style = "font-size : 18px;"> public static bd sbc.size (); if (size> (long) max_buffer_size) 새로운 outofMemoryError를 던집니다 ( "필요한 배열 크기가 너무 큰"); return read (in, (int) 크기); }} </span>파일의 한 줄만 읽습니다
패키지 엔트리 니오; import java.io.ioexception; import java.nio.file.files; java.nio.file.paths import; public class bufferandChannel {public static void main (string [] args) {try {system.out.println (new String (files.readallBytes ( "c : //filechannelimpl.java"))); } catch (ioexception e) {e.printstacktrace (); }}}readalllines 메소드의 소스 코드
public static list <string> readalllines (Path Path, Charset Cs)는 ioexception {try (bufferedReader reader = newbufferedReader (path, cs)) {list <string> result = new arraylist <> (); for (;;) {String line = reader.readline (); if (line == null) break; result.add (line); } 반환 결과; }} 패키지 엔트리 니오; Java.util.list 가져 오기; import java.io.ioexception; java.nio.charset.standardcharsets 가져 오기; import java.nio.file.files; java.nio.file.paths import; public class bufferandchannel {public static void main (String [] args) {// 텍스트 파일 인 경우 이렇게 읽을 수도 있습니다. readalllines 메소드를 호출하려면 {<span style = "white-space : pre"> </span> // JDK1.8 이후 두 번째 매개 변수를 생략 할 수 있습니다. 기본값은 UTF-8 인코딩 목록 <string> lines = files.readalllines입니다 (paths.get ( "C : //filechannelimpl.java"), Standardcharsets.utf_8); StringBuilder sb = new StringBuilder (); for (string line : line) {sb.append (line+"/n"); ///r/n newline} string fromfile = sb.tostring (); System.out.println (Fromfile); } catch (ioexception e) {e.printstacktrace (); }}}Java8 스트림 사용 방법 :
먼저 소스 코드 구현을 살펴보십시오
public static stream <string> 라인 (경로 경로)은 ioexception {return line (path, Standardcharsets.utf_8); } 패키지 엔트리 니오; import java.io.ioexception; import java.nio.file.files; java.nio.file.paths import; public class bufferandChannel {public static void main (string [] args) {// java8 추가 라인 메소드 시도 {// java8은 스트리밍을 사용하여 파일을 읽고 더 효율적인 파일을 만듭니다. sans-serif; ">"c : //filechannelimpl.java "</span>)). foreach (system.out :: println); } catch (ioexception e) {e.printstacktrace (); }}}파일을 읽고 파일을 작성하려면 하나의 줄만 필요합니다.
패키지 엔트리 니오; import java.util.arrays; Java.util.list 가져 오기; import java.io.ioexception; import java.nio.file.files; java.nio.file.paths import; java.nio.file.StandardOpenoption 가져 오기; public class bufferandchannel {public static void main (String [] args) {// java8은 줄을 추가합니다. {// java8은 스트림에서 파일을 읽습니다.이 파일은 더 효율적입니다. e.printstacktrace (); * / /* files.readalllines (Path Path) 메소드는 files.write ()를 위해 설계된 목록 <string> 유형의 값을 리턴합니다. charSequence> type * * files.write (경로 경로, 반복 가능한 <? extends charSequence> lines, openOption ... 옵션) */ list <stringstream = files.readalllines (paths.get (filepath)); // files.lines (Path Path)는 스트림 <strings를 반환하기 때문에 다음 메소드를 사용하여 <string> // list <stringstream2 = arrays.aslist ((String []) files.lines (paths.get (filepath)). toarray ()); // StandardEpenoption은 열거 클래스입니다. 현재 Paths.get ()가 존재하지 않는 경우, 세 번째 매개 변수는 StandardOpenOption.create_new // 파일이 존재하는 경우 java.nio.file.filealreadyExexception Exception.write ( "C : //2.java"), StringsTream, StandardOpenOption.create_new)로 선택할 수 있습니다. } catch (ioexception e) {e.printstacktrace (); }}}위의 기사 jdk1.7 java.nio.file.files는 위 파일을 실현하기 위해 한 줄의 코드 만 있으면됩니다. 이것은 내가 당신과 공유하는 모든 콘텐츠입니다. 나는 당신이 당신에게 참조를 줄 수 있기를 바랍니다. 그리고 당신이 wulin.com을 더 지원할 수 있기를 바랍니다.