์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
Tags
- ์๋ฐ ๊ฐ๋
- ์๋ฐ
- ๋ฐ์ดํฐ ํต์
- ํ์ด์ฌ
- Database
- Reversing
- ์ค๋ผํด
- ๋ฐฑ์ค ๋ฌ์คํธ
- Python challenge
- ๋ฌ์คํธ ์์
- ๋ฌ์คํธ
- ๋ฐฑ์ค
- ๋ฌ์คํธ ํ๋ก๊ทธ๋๋ฐ ๊ณต์ ๊ฐ์ด๋
- OS
- ์๋ฐ ๊ธฐ์ด
- Python
- java
- ํ์ด์ฌ ์ฑ๋ฆฐ์ง
- ์ฐ๋ถํฌ
- ํ์ด์ฌ ์ฒผ๋ฆฐ์ง
- data communication
- ubuntu
- ์ค๋ผํดDB
- ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ
- ์๊ณ ๋ฆฌ์ฆ
- Rust
- C
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- Operating System
- ์ด์์ฒด์
Archives
- Today
- Total
IT’s Portfolio
[Java] Lecture - Day 17 ๋ณธ๋ฌธ
728x90
๋ฐ์ํ
๐ฅ Basic Java - Day 17
๐๐ป [Chapter 13] ์ ์ถ๋ ฅ ์คํธ๋ฆผ๊ณผ ํ์ผ ์ ์ถ๋ ฅ
์คํธ๋ฆผ(stream)
- ์ฌ์ ์ ์๋ฏธ: ํ๋ฅด๋ ์๋๋ฌผ
- ์ปดํจํฐ ๊ณตํ์ ์๋ฏธ: ์ฐ์์ ์ธ ๋ฐ์ดํฐ์ ํ๋ฆ ๋๋ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ์ํํธ์จ์ด ๋ชจ๋
์๋ฐ์ ์ ์ถ๋ ฅ ์คํธ๋ฆผ
- ์
์ถ๋ ฅ ์ฅ์น์ ์๋ฐ ์์ฉ ํ๋ก๊ทธ๋จ์ ์ฐ๊ฒฐํ๋ ์ํํธ์จ์ด ๋ชจ๋
- ์ ๋ ฅ ์คํธ๋ฆผ
- ์ถ๋ ฅ ์คํธ๋ฆผ
- ํน์ง
- ์ ์ถ๋ ฅ ์คํธ๋ฆผ ๊ธฐ๋ณธ ๋จ์: ๋ฐ์ดํธ๋ ๋ฌธ์
- ๋จ๋ฐฉํฅ ์คํธ๋ฆผ, ์ ์ ์ ์ถ ๊ตฌ์กฐ
- ๋ฌธ์ ์คํธ๋ฆผ
- ๋ฌธ์๋ง ์ ์ถ๋ ฅํ๋ ์คํธ๋ฆผ(์๋ฐ์ 1๋ฌธ์๋ 2bytes)
- ๋ฌธ์๊ฐ ์๋ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ ์ฒ๋ฆฌํ์ง ๋ชปํจ
- ๋ฌธ์๊ฐ ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฌธ์ ์คํธ๋ฆผ์ผ๋ก ์ถ๋ ฅํ๋ฉด ๊นจ์ง ๊ธฐํธ๊ฐ ์ถ๋ ฅ
- ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ๋ฌธ์ ์คํธ๋ฆผ์ผ๋ก ์ฝ์ผ๋ฉด ์ฝ์ ์ ์๋ ๋ฐ์ดํธ๊ฐ ์๊ฒจ์ ์ค๋ฅ ๋ฐ์
- ๋ฐ์ดํธ ์คํธ๋ฆผ
- ์ ์ถ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋จ์ ๋ฐ์ดํธ์ ํ๋ฆ์ผ๋ก ์ฒ๋ฆฌ
- ๋ฌธ์ ๋ฐ์ดํฐ ๋ฐ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ์๊ด์์ด ์ฒ๋ฆฌ ๊ฐ๋ฅ
์คํธ๋ฆผ ์ฐ๊ฒฐ
InputStreamReader rd = new InputStreamReader(System.in);
while(true) {
int c = rd.read(); // ์
๋ ฅ ์คํธ๋ฆผ์ผ๋ก๋ถํฐ ํค ์
๋ ฅ. c๋ ์
๋ ฅ๋ ํค ๋ฌธ์ ๊ฐ
if(c==-1) break; // ์
๋ ฅ ์คํธ๋ฆผ์ ๋์ ๋ง๋๋ ๊ฒฝ์ฐ ์
๋ ฅ ์ข
๋ฃ
}
- ์ฌ๋ฌ ๊ฐ์ ์คํธ๋ฆผ์ ์ฐ๊ฒฐํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ
๋ฌธ์ ์คํธ๋ฆผ์ผ๋ก ํ ์คํธ ํ์ผ ์ฝ๊ธฐ
// ํ์ผ ์
๋ ฅ ์คํธ๋ฆผ ์์ฑ(ํ์ผ ์ด๊ธฐ)
FileReader fr = new FileReader("PATH");
// ํ์ผ ์ฝ๊ธฐ
int c;
while((c=fr.read())!=-1) { // ๋ฌธ์๋ฅผ c์ ์ฝ์. ํ์ผ ๋๊น์ง ๋ฐ๋ณต
System.out.print((char)c); // ๋ฌธ์ c ์ถ๋ ฅ
}
// ์คํธ๋ฆผ ๋ซ๊ธฐ
fr.close()
- ํ
์คํธ ํ์ผ์ ์ฝ๊ธฐ ์ํด ๋ฌธ์ ์คํธ๋ฆผ FileReader ํด๋์ค ์ด์ฉ
- ์คํธ๋ฆผ ์์ฑ ํ ํ์ผ ์ด์ด ์คํธ๋ฆผ๊ณผ ์ฐ๊ฒฐ
- read()๋ก ๋ฌธ์ ํ๋์ฉ ํ์ผ์์ ์ฝ์
- ์คํธ๋ฆผ์ด ๋ ์ด์ ํ์๊ฐ ์์ ์ close()๋ก ๋ซ๊ธฐ
- ๋ซํ ์คํธ๋ฆผ์์๋ ์ฝ์ ์ ์์
ํ์ผ ์ ์ถ๋ ฅ๊ณผ ์์ธ ์ฒ๋ฆฌ
- ํ์ผ ์
์ถ๋ ฅ ๋์ ์์ธ ๋ฐ์ ๊ฐ๋ฅ
- ์คํธ๋ฆผ ์์ฑ ๋์: FileNotFoundException ๋ฐ์ ๊ฐ๋ฅ
- ํ์ผ ๊ฒฝ๋ก๋ช ์ด ํ๋ฆฌ๊ฑฐ๋, ๋์คํฌ์ ๊ณ ์ฅ ๋ฑ์ผ๋ก ํ์ผ์ ์ด ์ ์์
- FileNotFoundException์ IOException์ ์์๋ฐ์
- ํ์ผ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ๋ซ๊ธฐ๋ฅผ ํ๋ ๋์: IOException ๋ฐ์ ๊ฐ๋ฅ
- ๋์คํฌ ์ค๋์, ํ์ผ ์ค๊ฐ์ ๊นจ์ง ๊ฒฝ์ฐ, ๋์คํฌ ๊ณต๊ฐ์ด ๋ชจ์๋ผ์ ํ์ผ ์ ์ถ๋ ฅ ๋ถ๊ฐ
- ์คํธ๋ฆผ ์์ฑ ๋์: FileNotFoundException ๋ฐ์ ๊ฐ๋ฅ
- try-catch ๋ธ๋ก ๋ฐ๋์ ํ์
- ์๋ฐ ์ปดํ์ผ๋ฌ์ ๊ฐ์ ์ฌํญ
FileReader์ ์์ฑ์์ ์ฃผ์ ๋ฉ์๋
FileReader(File file) // file์ ์ง์ ๋ ํ์ผ๋ก๋ถํฐ ์ฝ๋ FileReader ์์ฑ
FileReader(String name) // name ์ด๋ฆ์ ํ์ผ๋ก๋ถํฐ ์ฝ๋ FileReader ์์ฑ
- ์์ฑ์
int read() // ํ ๊ฐ์ ๋ฌธ์๋ฅผ ์ฝ์ด ์ ์ํ์ผ๋ก ๋ฆฌํด
int read(char[] cbuf) // ์ต๋ cbuf ๋ฐฐ์ด ํฌ๊ธฐ๋งํผ ๋ฌธ์๋ค์ ์ฝ์ด cbuf ๋ฐฐ์ด์ ์ ์ฅ. ๋ง์ผ ์ฝ๋ ๋์ค EOF๋ฅผ ๋ง๋๋ฉด ์ค์ ์ฝ์ ๋ฌธ์ ๊ฐ์ ๋ฆฌํด
int read(char[] cbuf, int off, int len) // ์ต๋ len ํฌ๊ธฐ๋งํผ ์ฝ์ด cbuf ๋ฐฐ์ด์ off๋ถํฐ ์ ์ฅ. ์ฝ๋ ๋์ค EOF๋ฅผ ๋ง๋๋ฉด ์ค์ ์ฝ์ ๋ฌธ์ ๊ฐ์ ๋ฆฌํด
String getEncoding() // ์คํธ๋ฆผ์ด ์ฌ์ฉํ๋ ๋ฌธ์ ์งํฉ์ ์ด๋ฆ ๋ฆฌํด
void close() // ์
๋ ฅ ์คํธ๋ฆผ์ ๋ซ๊ณ ๊ด๋ จ๋ ์์คํ
์์ ํด์
- ์ฃผ์ ๋ฉ์๋
import java.io.*;
public class FileExam01 {
static final String PATH = "C:/windows/system.ini";
public static void main(String[] args) {
try {
FileReader fr = new FileReader(PATH);
int c;
while((c=fr.read())!=-1) {
System.out.print((char)c);
}
fr.close();
} catch(IOException e) {
System.out.println(e);
}
}
}
- FileReader ์์
๋ฌธ์ ์คํธ๋ฆผ์ผ๋ก ํ ์คํธ ํ์ผ ์ฐ๊ธฐ
// ํ์ผ ์ถ๋ ฅ ์คํธ๋ฆผ ์์ฑ(ํ์ผ ์ด๊ธฐ)
FileWriter fw = new FileWriter("PATH");
// ํ์ผ ์ฐ๊ธฐ
fw.write('A'); // ๋ฌธ์ 'A'๋ฅผ ํ์ผ์ ๊ธฐ๋ก
char[] buf = new char[1024];
fw.write(buf, 0, buf.length); // buf[0]๋ถํฐ ๋ฒํผ ํฌ๊ธฐ๋งํผ ์ฐ๊ธฐ
// ์คํธ๋ฆผ ๋ซ๊ธฐ
fw.close()
- ํ
์คํธ ํ์ผ์ ์ฐ๊ธฐ ์ํด ๋ฌธ์ ์คํธ๋ฆผ FileWriter ํด๋์ค ์ด์ฉ
- ์คํธ๋ฆผ ์์ฑ ํ ํ์ผ์ ์ด์ด ์คํธ๋ฆผ๊ณผ ์ฐ๊ฒฐ
- write()๋ก ๋ฌธ์ ํ๋์ฉ ํ์ผ์ ๊ธฐ๋ก
- ๋ธ๋ก ๋จ์๋ก ์ฐ๊ธฐ ๊ฐ๋ฅ
- ์คํธ๋ฆผ์ด ๋ ์ด์ ํ์๊ฐ ์์ ์ close()๋ก ๋ซ๊ธฐ
- ๋ซํ ์คํธ๋ฆผ์์๋ ๊ธฐ๋กํ ์ ์์
FileWrite์ ์์ฑ์์ ์ฃผ์ ๋ฉ์๋
FileWriter(File file) // file์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ FileWriter ์์ฑ
FileWriter(String name) // name ํ์ผ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ FileWriter ์์ฑ
FileWriter(File file, boolean append) // FileWriter๋ฅผ ์์ฑํ๋ฉฐ, append๊ฐ true์ด๋ฉด ํ์ผ์ ๋ง์ง๋ง๋ถํฐ ๋ฐ์ดํฐ ์ ์ฅ
FileWriter(String name, boolean append) // FileWriter๋ฅผ ์์ฑํ๋ฉฐ, append๊ฐ true์ด๋ฉด ํ์ผ์ ๋ง์ง๋ง๋ถํฐ ๋ฐ์ดํฐ ์ ์ฅ
- ์์ฑ์
void write(int c) // c๋ฅผ char๋ก ๋ณํํ์ฌ ํ ๊ฐ์ ๋ฌธ์ ์ถ๋ ฅ
void write(String str, int off, int len) // ์ธ๋ฑ์ค off๋ถํฐ len๊ฐ์ ๋ฌธ์๋ฅผ str ๋ฌธ์์ด์์ ์ถ๋ ฅ
void write(char[] cbuf, int off, int len) // ์ธ๋ฑ์ค off๋ถํฐ len๊ฐ์ ๋ฌธ์๋ฅผ ๋ฐฐ์ด cbuf์์ ์ถ๋ ฅ
void flush() // ์คํธ๋ฆผ์ ๋จ์ ์๋ ๋ฐ์ดํฐ ๋ชจ๋ ์ถ๋ ฅ
String getEncoding() // ์คํธ๋ฆผ์ด ์ฌ์ฉํ๋ ๋ฌธ์ ์งํฉ์ ์ด๋ฆ ๋ฆฌํด
void close() // ์ถ๋ ฅ ์คํธ๋ฆผ์ ๋ซ๊ณ ๊ด๋ จ๋ ์์คํ
์์ ํด์
- ์ฃผ์ ๋ฉ์๋
import java.io.*;
public class FileExam02 {
static final String PATH = "temp/text.txt";
public static void main(String[] args) {
InputStreamReader isr = new InputStreamReader(System.in);
int c;
try {
FileWriter fw = new FileWriter(PATH);
while((c=isr.read())!=-1) {
fw.write(c); // ํค๋ณด๋๋ก๋ถํฐ ๋ฐ์ ๋ฌธ์๋ฅผ ํ์ผ์ ์ ์ฅ
}
isr.close();
fw.close();
} catch(IOException e) {
System.out.println(e);
}
}
}
- ํ ์คํธ ํ์ผ ์ฐ๊ธฐ ์์
๋ฐ์ดํธ ์คํธ๋ฆผ์ผ๋ก ๋ฐ์ด๋๋ฆฌ ํ์ผ ์ฐ๊ธฐ
// ํ์ผ ์ถ๋ ฅ ์คํธ๋ฆผ ์์ฑ(ํ์ผ ์ด๊ธฐ)
FileOutputStream fos = new FileOutputStream("PATH");
// ํ์ผ ์ฐ๊ธฐ
byte[] b = {7, 51, 3, 4, -1, 24};
for(int i=0;i<b.length;i++) fos.write(b[i]); // ๋ฐฐ์ด b๋ฅผ ๋ฐ์ด๋๋ฆฌ ๊ทธ๋๋ก ๊ธฐ๋ก
// ์คํธ๋ฆผ ๋ซ๊ธฐ
fos.close()
- ํ๋ก๊ทธ๋จ ๋ด์ ๋ณ์, ๋ฐฐ์ด, ๋ฒํผ์ ๋ ๋ฐ์ด๋๋ฆฌ ๊ฐ์ ํ์ผ์ ๊ทธ๋๋ก ๊ธฐ๋กํ๊ธฐ ์ํด FileWriter ํด๋์ค ์ด์ฉ
- ์คํธ๋ฆผ ์์ฑ ํ ํ์ผ์ ์ด์ด ์คํธ๋ฆผ๊ณผ ์ฐ๊ฒฐ
- write() ์ฌ์ฉํ์ฌ ๋ฌธ์ ํ๋์ฉ ํ์ผ์ ๊ธฐ๋ก
- ์คํธ๋ฆผ์ด ๋ ์ด์ ํ์๊ฐ ์์ ์ close()๋ก ๋ซ๊ธฐ
FileOutputStream์ ์์ฑ์์ ์ฃผ์ ๋ฉ์๋
FileOutputStream(File file) // file์ด ์ง์ ํ๋ ํ์ผ์ ์ถ๋ ฅํ๋ FileOutputStream ์์ฑ
FileOutputStream(String name) // name์ด ์ง์ ํ๋ ํ์ผ์ ์ถ๋ ฅํ๋ FileOutputStream ์์ฑ
FileOutputStream(File file, boolean append) // FileOutputStream์ ์์ฑํ์ฌ append๊ฐ true์ด๋ฉด file์ด ์ง์ ํ๋ ํ์ผ์ ๋ง์ง๋ง๋ถํฐ ๋ฐ์ดํฐ ์ ์ฅ
FileOutputStream(String name, boolean append) // FileOutputStream์ ์์ฑํ์ฌ appen๊ฐ true์ด๋ฉด name ์ด๋ฆ์ ํ์ผ์ ๋ง์ง๋ง๋ถํฐ ๋ฐ์ดํฐ ์ ์ฅ
- ์์ฑ์
void write(int b) // int ํ์ผ๋ก ๋๊ฒจ์ง ํ ๋ฐ์ดํธ๋ฅผ ์ถ๋ ฅ ์คํธ๋ฆผ์ผ๋ก ์ถ๋ ฅ
void write(byte[] b) // ๋ฐฐ์ด b์ ๋ฐ์ดํธ๋ฅผ ๋ชจ๋ ์ถ๋ ฅ ์คํธ๋ฆผ์ผ๋ก ์ถ๋ ฅ
void write(byte[] b, int off, int len) // len ํฌ๊ธฐ๋งํผ off๋ถํฐ ๋ฐฐ์ด b๋ฅผ ์ถ๋ ฅ ์คํธ๋ฆผ์ผ๋ก ์ถ๋ ฅ
void flush() // ์ถ๋ ฅ ์คํธ๋ฆผ์์ ๋จ์ ์๋ ๋ฐ์ดํฐ ๋ชจ๋ ์ถ๋ ฅ
void close() // ์ถ๋ ฅ ์คํธ๋ฆผ์ ๋ซ๊ณ ๊ด๋ จ๋ ์์คํ
์์ ํด์
- ์ฃผ์ ๋ฉ์๋
import java.io.*;
public class FileExam02 {
static final String PATH = "temp/test.out";
public static void main(String[] args) {
byte[] b = {7, 51, 3, 4, -1, 24};
try {
FileOutputStream fos = new FileOutputStream(PATH);
fos.write(b);
fos.close();
} catch(IOException e) {
System.out.println(e);
}
}
}
- ๋ฐ์ด๋๋ฆฌ ํ์ผ ์ฐ๊ธฐ ์์
๋ฐ์ดํธ ์คํธ๋ฆผ์ผ๋ก ๋ฐ์ด๋๋ฆฌ ํ์ผ ์ฝ๊ธฐ
// ํ์ผ ์
๋ ฅ ์คํธ๋ฆผ ์์ฑ(ํ์ผ ์ด๊ธฐ)
FileInputStream fis = new FileInputStream("PATH");
// ํ์ผ ์ฝ๊ธฐ
int n=0, c;
while((c=fis.read())!=-1) {
b[n] = (byte)c; // ์ฝ์ ๋ฐ์ดํธ ๋ฐฐ์ด์ ์ ์ฅ
n++;
}
// fin.read(b); -> ๋ฐฐ์ด b์ ๋ฐ์ดํธ ํฌ๊ธฐ๋งํผ ๋ฐ์ด๋๋ฆฌ ๊ทธ๋๋ก ์ฝ๊ธฐ
// ์คํธ๋ฆผ ๋ซ๊ธฐ
fin.close();
- ๋ฐ์ด๋๋ฆฌ ํ์ผ์์ ์ฝ๊ธฐ ์ํด FileInputStream ํด๋์ค ์ด์ฉ
- ์คํธ๋ฆผ ์์ฑ ํ ํ์ผ์ ์ด์ด ์คํธ๋ฆผ๊ณผ ์ฐ๊ฒฐ
- read()๋ก ๋ฌธ์ ํ๋์ฉ ํ์ผ์์ ์ฝ๊ธฐ
- ๋ธ๋ก ๋จ์๋ก ์ฝ๊ธฐ ๊ฐ๋ฅ
- ์คํธ๋ฆผ์ด ๋ ์ด์ ํ์๊ฐ ์์ ์ close()๋ก ๋ซ๊ธฐ
FileInputStream์ ์์ฑ์์ ์ฃผ์ ๋ฉ์๋
FileInputStream(File file) // file์ด ์ง์ ํ๋ ํ์ผ์ ์ถ๋ ฅํ๋ FileInputStream ์์ฑ
FileInputStream(String name) // name์ด ์ง์ ํ๋ ํ์ผ์ ์ถ๋ ฅํ๋ FileInputStream ์์ฑ
- ์์ฑ์
int read() // ์
๋ ฅ ์คํธ๋ฆผ์์ ํ ๋ฐ์ดํธ๋ฅผ ์ฝ์ด intํ์ผ๋ก ๋ฆฌํด
int read(byte[] b) // ์ต๋ ๋ฐฐ์ด b์ ํฌ๊ธฐ๋งํผ ๋ฐ์ดํธ๋ฅผ ์ฝ์. ์ฝ๋ ๋์ค EOF๋ฅผ ๋ง๋๋ฉด ์ค์ ์ฝ์ ๋ฐ์ดํธ ์ ๋ฆฌํด
int read(byte[] b, int off, int len) // ์ต๋ len ๊ฐ์ ๋ฐ์ดํธ๋ฅผ ์ฝ์ด b ๋ฐฐ์ด์ off ์์น์ ์ ์ฅ. ์ฝ๋ ๋์ค EOF๋ฅผ ๋ง๋๋ฉด ์ค์ ์ฝ์ ๋ฐ์ดํธ ์ ๋ฆฌํด
int available() // ์
๋ ฅ ์คํธ๋ฆผ์์ ํ์ฌ ์ฝ์ ์ ์๋ ๋ฐ์ดํธ ์ ๋ฆฌํด
void close() // ์
๋ ฅ ์คํธ๋ฆผ์ ๋ซ๊ณ ๊ด๋ จ๋ ์์คํ
์์ ํด์
- ์ฃผ์ ๋ฉ์๋
import java.io.*;
public class FileExam02 {
static final String PATH = "temp/test.out";
public static void main(String[] args) {
byte[] b = new byte[6];
try {
FileInputStream fis = new FileInputStream(PATH);
int n=0, c;
while((c=fis.read())!=-1) {
b[n] = (byte)c;
n++;
}
for(byte t:b)
System.out.print(t+" ");
System.out.println();
} catch(IOException e) {
System.out.println(e);
}
}
}
- ๋ฐ์ด๋๋ฆฌ ํ์ผ ์ฝ๊ธฐ ์์
File ํด๋์ค
- ํ์ผ์ ๊ฒฝ๋ก๋ช
๋ฐ ์์ฑ์ ๋ค๋ฃจ๋ ํด๋์ค
- java.io.File
- ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ ์ ์ถ์์ ํํ
- ํ์ผ ์ด๋ฆ ๋ณ๊ฒฝ, ์ญ์ , ๋๋ ํฐ๋ฆฌ ์์ฑ, ํฌ๊ธฐ ๋ฑ ํ์ผ ๊ด๋ฆฌ
- File ๊ฐ์ฒด์๋ ํ์ผ ์ฝ๊ธฐ/์ฐ๊ธฐ ๊ธฐ๋ฅ ์์
- ํ์ผ ์ ์ถ๋ ฅ์ ํ์ผ ์ ์ถ๋ ฅ ์คํธ๋ฆผ ์ด์ฉ
File f = new File("file PATH");
- ์์ฑ์์ ํ์ผ ๊ฒฝ๋ก๋ช ์ ์ง์ ํ ๋นํ์ฌ ์์ฑ
File f = new File("directory PATH", "file PATH");
- ๋๋ ํฐ๋ฆฌ์ ํ์ผ๋ช ๋๋์ด ํ ๋นํ์ฌ ์์ฑ
File(File parent, String child) // parent ๋๋ ํฐ๋ฆฌ์ child ์ด๋ฆ์ ๋๋ ํฐ๋ฆฌ๋ ํ์ผ์ ๋ํ๋ด๋ File ๊ฐ์ฒด ์์ฑ
File(String pathname) // pathname์ ์์ ๊ฒฝ๋ก๋ช
์ด ๋ํ๋ด๋ File ๊ฐ์ฒด ์์ฑ
File(String parent, String child) // parent ๋๋ ํฐ๋ฆฌ์ child ์ด๋ฆ์ ๋๋ ํฐ๋ฆฌ๋ ํ์ผ์ ๋ํ๋ด๋ File ๊ฐ์ฒด ์์ฑ
File(URI uri) // file:URI๋ฅผ ์ถ์ ๊ฒฝ๋ก๋ช
์ผ๋ก ๋ณํํ์ฌ File ๊ฐ์ฒด ์์ฑ
- ์์ฑ์
boolean mkdir() // ์๋ก์ด ๋๋ ํฐ๋ฆฌ ์์ฑ
String[] list() // ๋๋ ํฐ๋ฆฌ ๋ด์ ํ์ผ๊ณผ ์๋ธ ๋๋ ํฐ๋ฆฌ ๋ฆฌ์คํธ๋ฅผ ๋ฌธ์์ด ๋ฐฐ์ด๋ก ๋ฆฌํด
File[] listFiles() // ๋๋ ํฐ๋ฆฌ ๋ด์ ํ์ผ๊ณผ ์๋ธ ๋๋ ํฐ๋ฆฌ ๋ฆฌ์คํธ๋ฅผ File[] ๋ฐฐ์ด๋ก ๋ฆฌํด
boolean renameTo(File dest) // dest๊ฐ ์ง์ ํ๋ ๊ฒฝ๋ก๋ช
์ผ๋ก ํ์ผ ์ด๋ฆ ๋ณ๊ฒฝ
boolean delete() // ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ ์ญ์
long length() // ํ์ผ์ ํฌ๊ธฐ ๋ฆฌํด
String getPath() // ๊ฒฝ๋ก๋ช
์ ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ๋ฆฌํด
String getParent() // ํ์ผ์ด๋ ๋๋ ํฐ๋ฆฌ์ ๋ถ๋ชจ ๋๋ ํฐ๋ฆฌ ์ด๋ฆ ๋ฆฌํด
String getName() // ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ ์ด๋ฆ์ ๋ฌธ์์ด๋ก ๋ฆฌํด
boolean isFile() // ์ผ๋ฐ ํ์ผ์ด๋ฉด true ๋ฆฌํด
boolean isDirectory() // ๋๋ ํฐ๋ฆฌ์ด๋ฉด true ๋ฆฌํด
long lastModified() // ํ์ผ์ด ๋ง์ง๋ง์ผ๋ก ๋ณ๊ฒฝ๋ ์๊ฐ ๋ฆฌํด
boolean exists() // ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ๊ฐ ์กด์ฌํ๋ฉด true ๋ฆฌํด
- ์ฃผ์ ๋ฉ์๋
File ํด๋์ค ํ์ฉ
File f = new File("c:/windows/system.ini");
// ํ์ผ ๊ฒฝ๋ก๋ช
String filename = f.getName(); // "system.ini"
String path = f.getPath(); // "c:\\windows\\system.ini"
String parent = f.getParent(); // "c:\\windows"
// ํ์ผ ํฌ๊ธฐ
long size = f.length();
// ํ์ผ ํ์
if(f.isFile())
System.out.println(f.getPath() + "๋ ํ์ผ์
๋๋ค."); // ํ์ผ
else if(f.isDirectory())
System.out.println(f.getPath() + "๋ ๋๋ ํฐ๋ฆฌ์
๋๋ค."); // ๋๋ ํฐ๋ฆฌ
// ๋๋ ํฐ๋ฆฌ ํ์ผ ๋ฆฌ์คํธ ์ป๊ธฐ
File f = new File("c:/Temp");
for(File t:f.listFiles()) {
System.out.print(t.getName()); // ์๋ธ ํ์ผ๋ช
System.out.println("\tํ์ผ ํฌ๊ธฐ: " + t.length()); // ํ์ผ ํฌ๊ธฐ
}
import java.io.*;
public class FileExam03 {
public static void listDirectory(File dir) {
System.out.println(
"-----" + dir.getPath()
+ "์ ์๋ธ ๋ฆฌ์คํธ์
๋๋ค.-----"
);
File[] subFiles = dir.listFiles();
for(File f:subFiles) {
long t = f.lastModified(); // ๋ง์ง๋ง์ผ๋ก ์์ ๋ ์๊ฐ
System.out.print(f.getName());
System.out.print("\tํ์ผ ํฌ๊ธฐ: " + f.length()); // ํ์ผ ํฌ๊ธฐ
System.out.printf("\t์์ ํ ์๊ฐ: %tb %td %ta %tT\n", t, t, t, t);
}
}
public static void main(String[] args) {
File f1 = new File("c:/windows/system.ini");
System.out.println(f1.getPath() + ", " + f1.getParent() + ", " + f1.getName());
String res = (f1.isFile())?"ํ์ผ":"๋๋ ํ ๋ฆฌ";
System.out.println(f1.getPath()+"์ "+res+"์
๋๋ค.");
File f2 = new File("c:/Temp/java_sample");
if(!f2.exists()) f2.mkdir();
listDirectory(new File("c:/Temp"));
f2.renameTo(new File("c:/Temp/javasample"));
listDirectory(new File("c:/Temp"));
}
}
- File ํด๋์ค๋ฅผ ํ์ฉํ ์์
import java.io.*;
public class FileExam04 {
public static void main(String[] args) {
File src = new File("c:/windows/system.ini"); // ์๋ณธ ํ์ผ ๊ฒฝ๋ก๋ช
File dest = new File("c:/Temp/system.txt"); // ๋ณต์ฌ ํ์ผ ๊ฒฝ๋ก๋ช
int c;
try {
FileReader fr = new FileReader(src); // ์
๋ ฅ ์คํธ๋ฆผ
FileWriter fw = new FileWriter(dest); // ์ถ๋ ฅ ์คํธ๋ฆผ
while((c=fr.read())!=-1) {
fw.write((char)c);
}
fr.close();
fw.close();
System.out.println(
src.getPath() + "๋ฅผ "
+ dest.getPath() + "๋ก ๋ณต์ฌํ์์ต๋๋ค."
);
} catch(IOException e) {
System.out.println(e);
e.printStackTrace();
}
}
}
- ํ ์คํธ ํ์ผ ๋ณต์ฌ ์์
import java.io.*;
public class FileExam05 {
public static void main(String[] args) {
File src = new File("c:/Temp/img.jpg");
File dest = new File("c:/Temp/back.jpg");
int c;
try {
FileInputStream fis = new FileInputStream(src);
FileOutputStream fos = new FileOutputStream(dest);
while((c=fis.read())!=-1) { // ํ ๋ฐ์ดํธ์ฉ ๋ณต์ฌํ๊ธฐ์ ์คํ ์๊ฐ์ด ๋ง์ด ์์๋จ
fos.write((byte)c);
}
fis.close();
fos.close();
System.out.println(
src.getPath() + "๋ฅผ "
+ dest.getPath() + "๋ก ๋ณต์ฌํ์์ต๋๋ค."
);
} catch(IOException e) {
System.out.println(e);
e.printStackTrace();
}
}
}
- ๋ฐ์ด๋๋ฆฌ ํ์ผ ๋ณต์ฌ ์์
import java.io.*;
public class FileExam06 {
public static void main(String[] args) {
File src = new File("c:/Temp/img.jpg");
File dest = new File("c:/Temp/back.jpg");
try {
FileInputStream fis = new FileInputStream(src);
FileOutputStream fos = new FileOutputStream(dest);
byte[] buf = new byte[1024*10]; // 10kb ๋ฒํผ
while(true) {
int n = fis.read(buf); // ๋ฒํผ ํฌ๊ธฐ๋งํผ ์ฝ๊ธฐ. n์ ์ค์ ์ฝ์ ๋ฐ์ดํธ
fos.write(buf, 0, n); // buf[0]๋ถํฐ n ๋ฐ์ดํธ ์ฐ๊ธฐ
if(n<buf.length) break; // ๋ฒํผ ํฌ๊ธฐ๋ณด๋ค ์๊ฒ ์ฝ์๊ธฐ ๋๋ฌธ์ ํ์ผ ๋์ ๋๋ฌ. ๋ณต์ฌ ์ข
๋ฃ
}
fis.close();
fos.close();
System.out.println(
src.getPath() + "๋ฅผ "
+ dest.getPath() + "๋ก ๋ณต์ฌํ์์ต๋๋ค."
);
} catch(IOException e) {
System.out.println(e);
e.printStackTrace();
}
}
}
- ๋ธ๋ก ๋จ์ ๋ฐ์ด๋๋ฆฌ ํ์ผ ๋ณต์ฌ ์์
System.out.printf()
- ์์์ด ์๋ ์ถ๋ ฅ
- %d: ์ ์ํ ์ถ๋ ฅ
- %s: ๋ฌธ์์ด ์ถ๋ ฅ
- %f: ์ค์ํ ์ถ๋ ฅ
- %c: ๋ฌธ์ ์ถ๋ ฅ
- %n: ์ค ๋ฐ๊ฟ
- %b: boolean ์ถ๋ ฅ
- ๋ ์ง ์๊ฐ ์ ๋ณด ์ถ๋ ฅ
- %tH: hour ์ถ๋ ฅ
- %tM: minute ์ถ๋ ฅ
- %tS: second ์ถ๋ ฅ
- %tA: ์์ผ
- %td: ์ผ์
- %tB: ๋ฌ(month)
- %tY: ์ฐ๋(year)
728x90
๋ฐ์ํ
'Development Study > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] Lecture - Day 19 (0) | 2024.06.07 |
---|---|
[Java] Lecture - Day 18 (1) | 2024.06.06 |
[Java] Lecture - Day 16 (1) | 2024.05.17 |
[Java] Lecture - Day 15 (0) | 2024.04.26 |
[Java] Lecture - Day 14 (0) | 2024.04.05 |
Comments