文字ストリームIO
4213 ワード
≪バイナリ・データ|Binary Data|oem_src≫:メモリ・ステータスで保存(そのまま保存、変更不可)-バイト・フロー
≪テキスト・データ|Text Data|oem_src≫:よく知られている文字ストリーム(使用するクラスが異なる)を格納します.
対応するosで正常に動作し、変換する必要があります.
テキストファイルの保存
≪テキスト・データ|Text Data|oem_src≫:よく知られている文字ストリーム(使用するクラスが異なる)を格納します.
対応するosで正常に動作し、変換する必要があります.
テキストファイルの保存
package ex00.filter.strstream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
public class FileWriterStream {
public static void main(String[] args) throws IOException {
char ch0 = 'A';
char ch1 = 'B';
char ch2 = '가';
// 1) 문자형 스트림 연결
Writer wr = new FileWriter("hyper.txt");
// 2) 문자 저장
wr.write(ch0);
wr.write(ch1);
wr.write(ch2);
// 3)문자형 스트림 닫기
wr.close();
}
}
保存したファイルの取得package ex00.filter.strstream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
public class FileReaderStream {
public static void main(String[] args) throws IOException {
char[] cBuf = new char[10]; //넉넉하게 저장공간 확보
int len = 0; //읽어들인 크기
// 1) 문자형 스트림 연결(읽기스트림)
Reader rd = new FileReader("hyper.txt");
// 2) 파일로부터 문자 읽기(최대 cBuf크기만큼 읽으려고 시도한다.)
// 실제 읽어들인 문자 수는 len 개수만큼 읽어들였다.
len = rd.read(cBuf, 0, cBuf.length); //0번부터 이 길이만큼 읽으려고 한다.
//3) 콘솔에 출력하기
for(int i = 0; i < len; i++){
System.out.println(cBuf[i]);
}
// 4) 스트림 닫기
rd.close();
}
}
バッファクラスを使用したファイルの作成と保存package ex00.filter.strstream.buffered;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class StringWriter {
public static void main(String[] args) throws IOException {
// 1) 스트림 out 객체를 생성하고, 바로 Buffer 필터와 결합한다.
BufferedWriter bOut = new BufferedWriter(new FileWriter("String.txt"));
//Writer wr = new FileWriter(String.txt); 를 만든 후 wr 객체를 BufferWriter 생성자에 넣어준 것과 같다.
bOut.write("훌륭한 사람과 어리석은 사람의 차이는 불과 한 걸음 차이다 - 나폴레옹");
bOut.newLine(); //개행
bOut.write("살아있는 한 희망은 있다 - 키케로");
bOut.newLine();
bOut.write("산다는 것 그것은 치열한 전투이다 - 로망롤랑");
bOut.newLine();
bOut.write("신은 용기있는 자를 결코 버리지 않는다 - 켄러");
bOut.newLine();
bOut.write("언제나 현재에 집중할 수 있다면 행복할 것이다 - 파울로 코엘료");
bOut.newLine();
bOut.newLine();
bOut.write("--- 명언 ---");
bOut.newLine();
bOut.write("[email protected]");
bOut.flush(); //이 함수를 써서 하드디스크에 명확하게 밀어줄 수 있다. 버퍼의 데이터를 파일에 기록한다.
bOut.close(); //닫아줘야 하드디스크에 명확하게 밀어준다. 닫을 때 flush 해주고 닫을 수도 있다.
System.out.println("명언 기록 완료 --- ");
}
}
バッファクラスを使用したファイルの取得package ex00.filter.strstream.buffered;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class StringReader {
public static void main(String[] args) throws IOException {
// 1) 버퍼와 결합된 문자형 읽기 스트림 생성
BufferedReader bIn = new BufferedReader(new FileReader("String.txt"));
// 2) 파일을 한줄씩 읽기
String str;
while(true){
str = bIn.readLine(); //파일에서 한줄을 읽어서 str에 저장한다
if(str == null) //더 이상 읽은 데이터가 없다면 (파일의 끝)
break;
else
System.out.println(str);
}
// 3) 스트림 닫기
bIn.close();
}
}
PrintWriterクラスでは、フォーマット文字を使用して置換できます.package ex00.filter.strstream.buffered;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class PrintWriterStream {
public static void main(String[] args) throws IOException {
//버퍼를 사용하고 버퍼를 다시 프린트라이터 클래스를 사용하여 기능을 쓴다.
PrintWriter pOut = new PrintWriter(new BufferedWriter(new FileWriter("printf.txt")));
// %d는 int 변수/상수를 받는 서식문자
// %f는 실수 변수/상수를 받는 서식문자
// %.1f는 소수점 1자리까지 출력
pOut.printf("나이는 %d살 입니다\n",24);
pOut.printf("키는 %.1f입니다\n",174.5);
pOut.printf("무게는 %.1f입니다\n",82.4);
pOut.printf("사는 곳는 [%s]입니다\n","서울 신촌 스타벅스");
pOut.println();
pOut.println("저는 java가 좋습니다");
pOut.print("특히 파일 입출력(File I/0)가 좋습니다");
pOut.close();
}
}
Reference
この問題について(文字ストリームIO), 我々は、より多くの情報をここで見つけました https://velog.io/@jinkyung/문자형-stream-IOテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol