1. 스트림과 바이트 스트림, 문자 스트림의 상속 관계.
2. 노드는 FileOutputStream 및 FileInputStream을 스트리밍하고 BufferedInputStream 및 BufferedOutputStream을 처리합니다. 그리고 해당 FileOutputWriter, FileInputReader, BufferedInputReader, BufferedOutputWriter.
3. 스트림 변환 InputStreamReader 및 OutputStreamWriter
1: 스트림의 상속 관계
바이트 스트림
문자 스트림
사용 범위: 바이트 스트림 일반 이미지, 동영상, PPT, Word 형태의 파일을 처리합니다. 문자 스트림은 일반적으로 TXT 파일 등 일반 텍스트 파일을 처리하는 데 사용됩니다. 바이트 스트림은 일반 텍스트 파일을 처리하는 데 사용할 수 있지만, 문자 스트림은 이미지, 비디오 등 텍스트가 아닌 파일을 처리하는 데 사용할 수 없습니다.
두 가지: 처리 스트림 BufferedReader, BufferedWriter, BufferedInputStream
BufferedOutputsStream은 노드 스트림의 상위 계층을 포함해야 합니다. 즉, 처리 스트림은 노드 스트림을 기반으로 하며, 버퍼링된 스트림은 파일의 입력과 출력을 가장 빠르게 처리합니다. 따라서 일반적으로 버퍼링된 스트림이 더 자주 사용됩니다.
다음은 파일 복사에 대한 두 가지 간단한 예입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
public static void main(String[] args) { 🎜
🎜 파일 src = 새 파일( "D:/1.jpg" );🎜
🎜 // D:/1.jpg가 있어야 합니다. 그렇지 않으면 오류가 보고됩니다 🎜
🎜 파일 대상 = 새 파일( "D:/2.jpg" );🎜
🎜 // D:/2.jpg가 있으면 덮어쓰고 없으면 새로 만듭니다 🎜
🎜 streamCopy(src, dest); 🎜
🎜 } 🎜
🎜비공개 정적 void readCopy(파일 src,파일 대상) 🎜🎜🎜🎜
🎜 { 🎜
🎜 FileReader fr= null ; 🎜
🎜 FileWriter fw= null ; 🎜
🎜 BufferedReader br= null ; 🎜
🎜 BufferedWriter bw= null ; 🎜
🎜 시도해보세요 { 🎜
🎜 fr= 새 FileReader(src); 🎜
🎜 fw= new FileWriter(dest); 🎜
🎜 br= 새 BufferedReader(fr); 🎜
🎜 bw= 새 BufferedWriter(fw); 🎜
🎜 문자열 문자열; 🎜
🎜 while ((str=br.readLine())!= null ) 🎜
🎜 { 🎜
🎜 bw.write(str); 🎜
}
|
// TODO 자동 생성된 catch 블록
#🎜🎜#
#🎜🎜#
e.printStackTrace();
#🎜🎜#
#🎜🎜#
}
#🎜🎜#
#🎜🎜#
시도
{
#🎜🎜#
#🎜🎜#
bw.close();
#🎜🎜#
#🎜🎜#
br.close();
#🎜🎜#
#🎜🎜#
}
catch
(IOException e) {
#🎜🎜#
#🎜🎜#
// TODO 자동 생성된 catch 블록
#🎜🎜#
#🎜🎜#
e.printStackTrace();
#🎜🎜#
#🎜🎜#
}
#🎜🎜#
#🎜🎜# #🎜🎜#
#🎜🎜# }#🎜🎜#
#🎜🎜#
private
static
void
streamCopy(파일 src, 파일 대상) {
#🎜🎜#
#🎜🎜#
FileInputStream fis =
null
;
#🎜🎜#
#🎜🎜#
FileOutputStream fos =
null
;
#🎜🎜#
#🎜🎜#
BufferedInputStream bis =
null
;
#🎜🎜#
#🎜🎜#
BufferedOutputStream bos =
null
;
#🎜🎜#
#🎜🎜#
시도
{
#🎜🎜#
#🎜🎜#
fis =
new
FileInputStream(src);
#🎜🎜#
#🎜🎜#
fos =
new
FileOutputStream(dest);
#🎜🎜#
#🎜🎜#
bis =
new
BufferedInputStream(fis);
#🎜🎜#
#🎜🎜#
bos =
new
BufferedOutputStream(fos);
#🎜🎜#
#🎜🎜#
int
len;
#🎜🎜#
#🎜🎜#
바이트
[] b =
새
바이트
[
1024
];
#🎜🎜#
#🎜🎜#
동안
((len = bis.read(b)) != -
1
) {
#🎜🎜#
#🎜🎜#
bos.write(b,
0
, len);
#🎜🎜#
#🎜🎜# // bos.write(b,0,len);是把读到数组的大小字节写入
#🎜🎜#
#🎜🎜# // bos.write(b);最后一次如果数组未写满的话就会多读。
#🎜🎜#
#🎜🎜#
}
#🎜🎜#
#🎜🎜#
}
catch
(IOException e) {
#🎜🎜#
#🎜🎜#
// TODO 자동 생성된 catch 블록
#🎜🎜#
#🎜🎜#
e.printStackTrace();
#🎜🎜#
#🎜🎜#
}
#🎜🎜#
#🎜🎜#
시도
{
#🎜🎜#
#🎜🎜#
bos.close();
#🎜🎜#
#🎜🎜#
bis.close();
#🎜🎜#
#🎜🎜#
}
catch
(예외 e) {
#🎜🎜#
#🎜🎜#
// TODO 자동 생성된 catch 블록
#🎜🎜#
#🎜🎜#
e.printStackTrace();
#🎜🎜#
#🎜🎜#
}
#🎜🎜#
#🎜🎜# }#🎜🎜#
#🎜🎜#}#🎜🎜#
#🎜🎜#
#🎜🎜##🎜🎜##🎜🎜#3 문자 스트림은 바이트 스트림으로 변환되어 OutputStreamWriter를 통해 저장됩니다.
1
2
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
공개 클래스 InputStreamWriterTest {
public static void main(String[] args) {
파일 src = 새 파일( "D:/Files/Shit.txt" 코드>);
|
파일 대상 = 새 파일( "D:/Files/Smith.txt");
|
FileOutputStream fos =
null
;
🎜
🎜
시도해보세요
{
🎜
🎜
fis =
new
FileInputStream(src);
🎜
🎜
fos =
새
FileOutputStream(dest);
🎜
🎜
InputStreamReader ir =
new
InputStreamReader(fis,
"GBK"
);
🎜
🎜
OutputStreamWriter ow =
new
OutputStreamWriter(fos,
"GBK"
);
🎜
🎜
bw =
새
BufferedWriter(ow);
🎜
🎜
br =
새
BufferedReader(ir);
🎜
🎜
문자열 문자열
🎜
🎜
while
((str = br.readLine()) !=
null
) {
코드> 코드>🎜
🎜
bw.write(str);
🎜
🎜
bw.newLine();
🎜
🎜
bw.flush();
🎜
🎜
}
🎜
🎜
}
catch
(IOException e) {
🎜
🎜
e.printStackTrace();
🎜
🎜
}
🎜
🎜
시도해보세요
{
🎜
🎜
bw.close();
🎜
🎜
br.close();
🎜
🎜
}
catch
(IOException e) {
🎜
🎜
e.printStackTrace();
🎜
🎜
}
🎜
🎜
}
🎜
🎜}🎜
🎜
🎜🎜🎜관련 기사:
java IO 스트림 출력 스트림 사용 OutputString()
관련 동영상:
최신 Java 전체 동영상 튜토리얼 - 무료 온라인 동영상 튜토리얼
위 내용은 Java의 IO 스트림 정보: 스트림 상속 관계, 처리 스트림 및 변환 스트림의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!