java IO 흐름의 입력 흐름 InputString() 사용

본고는 주로 여러분에게 자바의 Input Stream 흐름의 사용을 소개합니다.
(1) FileInputstream: 하위 클래스, 데이터 읽기 채널
다음 단계를 사용합니다.
    1.대상 파일 가져오기:new File()
    2.채널 설정: new FileInputString()
    3.데이터 읽기:read()
    4.리소스 풀기:close()

// 
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
// 
test1();
System.out.println("-------------------------------------------");
test2();
System.out.println("-------------------------------------------");
test3();
System.out.println("-------------------------------------------");
test4();
}
(2) 데이터를 읽는 세 가지 방법
    1.직접 읽기 (한 번에 한 바이트만 가능)

int date = fileInputStream.read();
      char date3 = (char)fileInputStream.read();

//   
public static void test1() throws IOException{
//(1) 
File file = new File("C:\\Users\\joke\\Desktop\\Demo1.java");
//(2)   : new FileInputStream(file)
FileInputStream fileInputStream = new FileInputStream(file);
//(3)  :read();
int date = fileInputStream.read();// int 
int date2 = fileInputStream.read();//
char date3 = (char)fileInputStream.read(); // char 
System.out.println(date+"\\"+date2+"\\"+date3);
//(4) 
fileInputStream.close();
}
 2.for 순환 단독 사용(효율 낮음)

for(int i = 0; i < file.length();i++){
        System.out.print((char)fileInputStream.read());
      }

//   
public static void test2() throws IOException{
// 
long startTime = System.currentTimeMillis();
File file = new File("C:\\Users\\joke\\Desktop\\Demo1.java");
FileInputStream fileInputStream = new FileInputStream(file);
//for 
for(int i = 0; i < file.length();i++){
System.out.print((char)fileInputStream.read());
}
fileInputStream.close();
long endTime = System.currentTimeMillis();
System.out.println(" :"+(endTime-startTime));
}
3. Byte[] 버퍼(지정된 바이트만 읽을 수 있고 전체 파일은 읽을 수 없음)

byte[] bt = new byte[1024];
      int count = fileInputStream.read(bt);
      System.out.println(new String (bt,0,count));

//   ( , )
public static void test3() throws IOException{
File file = new File("C:\\Users\\joke\\Desktop\\Demo1.java");
FileInputStream fileInputStream = new FileInputStream(file);
// , , 
byte[] bt = new byte[1024];
//read()  
int count = fileInputStream.read(bt);
System.out.println(count); // 
System.out.println(new String (bt,0,count));// 
fileInputStream.close();
}
4. 버퍼와 순환이 결합된다.버퍼는 일반적으로 1024의 배수로 설정됩니다.이론적으로 설정된 버퍼가 클수록 읽기 효율이 높아진다

byte[] bt = new byte[1024];
      int count = 0;
      while((count = fileInputStream.read(bt)) != -1){
        System.out.println(new String (bt,0,count));
      }

//   ( )
public static void test4() throws IOException{
// 
long startTime = System.currentTimeMillis();
File file = new File("C:\\Users\\joke\\Desktop\\Demo1.java");
FileInputStream fileInputStream = new FileInputStream(file);
// 1024 。 , 
byte[] bt = new byte[1024];
int count = 0;
//read  -1  , 
while((count = fileInputStream.read(bt)) != -1){
// ( bt 0 count )
System.out.println(new String (bt,0,count));
}
fileInputStream.close();
long endTime = System.currentTimeMillis();
System.out.println(" :"+(endTime-startTime));
}
모모는 말했다.
이상에서 두 번째와 네 번째 방법을 비교하면 방법 4의 효율이 비교적 높다는 것을 발견할 수 있기 때문에 사용하는 네 가지 방법을 추천합니다
여기서 우리는 직접 이상을 던지는데, 던지는 것 외에 우리는 사용할 수 있다
     try{  }cater{  }finally{  }예외를 처리하는 방법
위에서 말한 것은 편집자가 여러분께 소개한 자바 IO 흐름의 입력 흐름 Input String () 의 사용입니다. 여러분께 도움이 되었으면 합니다. 만약에 궁금한 점이 있으면 저에게 메시지를 남겨 주십시오. 편집자는 제때에 답장을 드리겠습니다.여기에서도 저희 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기