java IO 흐름의 입력 흐름 InputString() 사용
4238 단어 javaio입력 흐름inputstring
(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 () 의 사용입니다. 여러분께 도움이 되었으면 합니다. 만약에 궁금한 점이 있으면 저에게 메시지를 남겨 주십시오. 편집자는 제때에 답장을 드리겠습니다.여기에서도 저희 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
38. Java의 Leetcode 솔루션텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.