자바 가 I/O 흐름 을 사용 하여 파일 내용 을 읽 는 방법 에 대한 상세 한 설명
I/O 흐름 을 이용 하여 파일 내용 을 읽 으 려 면 먼저 InputStream 의 체계 구 조 를 파악 해 야 한다.
이 시스템 에 서 는 FileInputStream 과 BufferedInputStream 을 반드시 파악 해 야 합 니 다.사용 빈도 가 높 기 때 문 입 니 다.
InputStream 방법:InputStream 은 자바.io 패키지 에 있 습 니 다.
OutputStream 방법:
파일 읽 기(코드):
package com.jredu.oopch11;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
/**
* I/O : , 。
* :
* :
* @author Administrator
*
*/
public class Ch01 {
/**
*
* @param args
*/
public static void main(String[] args) {
//InputStream:
// \:
// :1、\\ 2、/
try {
//
//1、
InputStream is = new FileInputStream("E:/iodemo/ch01.txt");
//2、
/*
// 1:
System.out.println(is.read());// :49
System.out.println((byte)is.read());//50
*/
// 2: ,
//
byte[] b = new byte[5];//
// int
int i = 0;
//
int index = 0;
//
while((i=is.read())!=-1){// i
b[index]=(byte) i;
index++;
}
//
System.out.println(new String(b));
//
is.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
// :
e.printStackTrace();
} catch (IOException e) {
//
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.jredu.oopch11;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
/**
* I/O : , 。
* :
* :
* @author Administrator
*
*/
public class Ch02 {
/**
*
* @param args
*/
public static void main(String[] args) {
//InputStream:
// \:
// :1、\\ 2、/
try {
//
//1、
InputStream is = new FileInputStream("E:/iodemo/ch01.txt");
//2、
//
byte[] b = new byte[5];//
//
is.read(b);
//read:
// b.length,
System.out.println(Arrays.toString(b));//
//
System.out.println(new String(b));
//
is.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
// :
e.printStackTrace();
} catch (IOException e) {
//
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.jredu.oopch11;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
/**
* I/O : , 。
* :
* :
* @author Administrator
*
*/
public class Ch03 {
/**
*
* @param args
*/
public static void main(String[] args) {
//InputStream:
// \:
// :1、\\ 2、/
try {
//
//1、
InputStream is = new FileInputStream("E:/iodemo/ch01.txt");
//2、
//
byte[] b = new byte[is.available()];//
//is.available():
// while(is.available()==0);// 0
//
int off = 0;
int le = 2;
while(is.read(b, off, 2)!=-1){
off+=1;
}
is.read(b,off,2);
//read:
// b.length,
System.out.println(Arrays.toString(b));//
//
System.out.println(new String(b));
//
is.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
// :
e.printStackTrace();
} catch (IOException e) {
//
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.jredu.oopch11;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Arrays;
public class Ch04 {
/**
*
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
/*FileInputStream fis = new FileInputStream("E:/iodemo/ch04.txt");
//
BufferedInputStream bis = new BufferedInputStream(fis);*/
//
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("E:/iodemo/ch04.txt"));
//
byte[] b = new byte[bis.available()];
bis.read(b);
/*char[] c = new char[b.length];
for (int i = 0; i < c.length; i++) {
c[i]=(char) b[i];
}
System.out.println(Arrays.toString(c));//
*/
System.out.println(Arrays.toString(b));//
//String(byte[])
System.out.println(new String(b));//
bis.close();// ( bis )
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.jredu.oopch11;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Ch05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
//
FileInputStream fis = new FileInputStream("E:/iodemo/ch01.txt");
//fis.available():
byte[] b=new byte[fis.available()];
//skip: n
fis.skip(5);// 5
fis.read(b);
System.out.println(new String(b));
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.jredu.oopch11;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class Ch06 {
/**
* , ,
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//
//
//
try {
BufferedInputStream bis= new BufferedInputStream(new FileInputStream("E:/iodemo/ch06.txt"));
byte[] b = new byte[bis.available()];
// bis.read(b, 0, b.length/2);
//
bis.mark(bis.read(b, 0, b.length/2));//
System.out.println(new String(b));
System.out.println(" ....");
Thread.sleep(2000);// 2s
//
System.out.println(" ...");
//reset: mark
bis.reset();
bis.read(b);
System.out.println(new String(b));
bis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.jredu.oopch11;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.SequenceInputStream;
/**
* ( )
* n
* @author Administrator
*
*/
public class Ch07 {
public static void main(String[] args) {
try {
//
FileInputStream fis1=new FileInputStream("E:/iodemo/ch01.txt");
//
FileInputStream fis2=new FileInputStream("E:/iodemo/ch04.txt");
//
SequenceInputStream sis=new SequenceInputStream(fis1, fis2);
// 1
// //
// int len =fis1.available()+fis2.available();
// byte[] b=new byte[2*len+1];
// // sb
//// StringBuffer sb=new StringBuffer();
// //
// int off=0;
// int i=0;
// while((i=sis.read(b,off,len))!=-1) {
//// sb.append();
// off+=i;
// }
// System.out.println(new String(b));
// 2
byte[] b=new byte[fis1.available()];
// StringBuffer sb=new StringBuffer();
// int i=0;
while(sis.read(b)!=-1) {
System.out.println(new String(b));
// sb.append(new String(b));
}
// System.out.println(sb.toString());
sis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.jredu.oopch11;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.SequenceInputStream;
import java.util.Vector;
public class Ch08 {
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
//
FileInputStream fis1 = new FileInputStream("E:/iodemo/a.txt");
FileInputStream fis2 = new FileInputStream("E:/iodemo/b.txt");
FileInputStream fis3 = new FileInputStream("E:/iodemo/c.txt");
//
Vector<FileInputStream> vector = new Vector<>();
vector.add(fis1);
vector.add(fis2);
vector.add(fis3);
// vector.elements(); // Enumeration
//
SequenceInputStream sis = new SequenceInputStream(vector.elements());
byte[] b = new byte[fis1.available()+fis2.available()+fis3.available()];
//
int off=0;
//vector.get(i).available():
for (int i = 0; i < vector.size(); i++) {
//off:
off+=sis.read(b, off, vector.get(i).available());//
}
System.out.println(new String(b));
sis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
자바 알고리즘 과 관련 된 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.