๐Today...
โ์ค๋์ TIL(Today I Learn)
์ ์ถ๋ ฅ ์คํธ๋ฆผ
์๋ฐ์์๋ ์ ์ถ๋ ฅ์ ๋ค๋ฃจ๊ธฐ ์ํด InputStream , OutputStream์ ์ ๊ณตํ๋ค. ์คํธ๋ฆผ์ ๋จ๋ฐฉํฅ์ผ๋ก๋ง ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์์๊ธฐ ๋๋ฌธ์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ๋์์ ์ฒ๋ฆฌํ๊ธฐ ์ํด์๋ ๊ฐ๊ฐ์ ์คํธ๋ฆผ์ด ํ์ํ๋ค. ์ด๋ฌํ Input / Output Stream์ ์ถ์ํด๋์ค์ด๊ณ ์ถ์ ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํ์ฌ ํ์ผ, ๋คํธ์ํฌ, ๋ฉ๋ชจ๋ฆฌ, ์ค๋์ค, ํ๋ก์ธ์ค ๋ฑ ๋ค์ํ ์ญํ ์ ์ํํ ์์๋ค. ๋ฐ์์ ์ค๋ช ํ๊ณ ์ ํ๋ ํ์ผ์ ์ถ๋ ฅ ์คํธ๋ฆผ๋ ์ฌ๊ธฐ์ ์ํ๋ค. ์๋ฐ์์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ๊ณตํ๋ I/O๊ธฐ๋ฅ์ java.ioํจํค์ง์์ ์ ๊ณต๋๋ค. Input์ ๋ง๊ทธ๋๋ก ์ธ๋ถ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ์ญํ ์ ์ํํ๊ณ , Output์ ์ธ๋ถ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ถ๋ ฅํ๋ ์ญํ ์ ์ํํ๋ค.
๋ฐ์ดํธ ๊ธฐ๋ฐ ์คํธ๋ฆผ
# FileInputStream
import java.io.FileInputStream; //java.io ํจํค์ง
public class FileInputStreamExample {
public static void main(String args[])
{
try {
FileInputStream fileInput = new FileInputStream("example.txt"); //์ฝ์ด์ฌ ํ์ผ๋ช
int i = 0;
while ((i = fileInput.read()) != -1) { //fileInput.read()์ ๋ฆฌํด๊ฐ์ i์ ์ ์ฅํ ํ, ๊ฐ์ด -1์ธ์ง ํ์ธํฉ๋๋ค.
System.out.print((char)i);
}
fileInput.close(); //file์
์ถ๋ ฅํ์ close๋ก ๋ซ์์ค์ผํ๋ค.
}
catch (Exception e) {
System.out.println(e);
}
}
}
๋ฐ์ดํฐ์ ๋์ ๋๋ฌํ๋ฉด -1์ ๋ฐํํ๋ค.
BufferedInputStream์ด๋ผ๋ ๋ณด์กฐ ์คํธ๋ฆผ์ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ์ด ํฅ์๋๋ค.
# FileOutputStream
import java.io.FileOutputStream;
public class FileOutputStreamExample {
public static void main(String args[]) {
try {
FileOutputStream fileOutput = new FileOutputStream("Example.txt");
String word = "gil";
byte b[] = word.getBytes();
fileOutput.write(b);
fileOutput.close();
}
catch (Exception e) {
System.out.println(e);
}
}
}
์ฝ๋๋ฅผ ์คํํ๋ฉด gil์ด๋ผ๋ ๋ฌธ์์ด์ด ์ ๋ ฅ๋ Example.txt ํ์ผ์ด ์์ฑ๋๋ค.
๋ฌธ์ ๊ธฐ๋ฐ ์คํธ๋ฆผ
๋ฐ์ดํธ๊ธฐ๋ฐ์ ์ ์ถ๋ ฅ๋จ์๊ฐ 1byte์ธ๋ฐ, JAVA์์์ char ํ์ ์ 2byte์ด๋ค. ์ด๋๋ฌธ์ ์๋ฐ์์๋ ๋ฌธ์๊ธฐ๋ฐ ์คํธ๋ฆผ์ ์ ๊ณตํ๋ค. ๋ฌธ์๊ธฐ๋ฐ ์คํธ๋ฆผ๊ณผ ๊ทธ ํ์ํด๋์ค๋ ์ฌ๋ฌ ์ธ์ฝ๋ฉ๊ณผ ์ ๋์ฝ๋(์๋ฐ์์ ์ฌ์ฉ)๊ฐ์ ๋ณํ์ ์๋์ผ๋ก ์ฒ๋ฆฌํ๋ค. ์ฆ ํ๊ธ๋ ์ ๋ ฅ์ด ๊ฐ๋ฅํด์ง๋ค.
# FileReader
์ธ์ฝ๋ฉ => ์ ๋์ฝ๋ ๋ณํ
public class FileReaderExample {
public static void main(String args[]) {
try {
String fileName = "Example.txt";
FileReader file = new FileReader(fileName);
int data = 0;
while((data=file.read()) != -1) {
System.out.print((char)data);
}
file.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
BufferedReader๋ก ์ฑ๋ฅ ๊ฐ์ ์ด ๊ฐ๋ฅํ๋ค.
#FileWriter
์ ๋์ฝ๋ => ์ธ์ฝ๋ฉ ๋ณํ
public class FileWriterExample {
public static void main(String args[]) {
try {
String fileName = "Example.txt";
FileWriter writer = new FileWriter(fileName);
String str = "FileWriter~~!";
writer.write(str);
writer.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
File ํด๋์ค
File ํด๋์ค๋ก ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
import java.io.*;
public class FileExample {
public static void main(String args[]) throws IOException {
File file = new File("./", "fileexample.txt"); //ํ์ผ ์ธ์คํด์ค ์์ฑ
file.createNewFile(); // ํ์ผ์์ฑ ๋ฉ์๋
System.out.println(file.getPath());
System.out.println(file.getParent());
System.out.println(file.getCanonicalPath());
System.out.println(file.canWrite());
}
}
2023.05.12 - [Languages๐ฅ/Java] - ์ ๋๊ฒฝ๋ก / ์๋๊ฒฝ๋ก