โถ ๊ทธ ์ธ ์ ์ถ๋ ฅ ํด๋์ค
โ
*File ํด๋์ค
File ํด๋์ค๋ ๋ง๊ทธ๋๋ก ํ์ผ์ด๋ผ๋ ๊ฐ๋ ์ ์ถ์ํํ ํด๋์ค์ด๋ค. File ํด๋์ค์ ๋ณ๋์ ์ ์ถ๋ ฅ ๊ธฐ๋ฅ์ ์์ง๋ง ํ์ผ ์์ฒด์ ๊ฒฝ๋ก๋ ์ ๋ณด๋ฅผ ์ ์ ์๊ณ ํ์ผ์ ์์ฑํ ์๋ ์๋ค.
์์ฑ์ |
์ค๋ช |
File(String pathname) |
pathname์ ๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ํ์ผ์ ์์ฑํ๋ค. |
โ
โ
FileTest.java
package stream.others;
import java.io.File;
import java.io.IOException;
public class FileTest {
public static void main(String[] args) throws IOException {
File file = new File("c:\\java\\newFile.txt"); // ํด๋น ๊ฒฝ๋ก์ File ํด๋์ค ์์ฑ. ์์ง ์ค์ ํ์ผ์ด ์์ฑ๋ ๊ฒ์ ์๋
file.createNewFile(); // ์ค์ ํ์ผ ์์ฑ
System.out.println(file.isFile());
System.out.println(file.isDirectory());
System.out.println(file.getName());
System.out.println(file.getAbsolutePath());
System.out.println(file.getPath());
System.out.println(file.canRead());
System.out.println(file.canWrite()); // ํ์ผ์ ์์ฑ์ ์ดํด๋ณด๋ ๋ฉ์๋ ํธ์ถํ์ฌ ์ถ๋ ฅ
file.delete(); // ํ์ผ ์ญ์
}
}
<์คํ ๊ฒฐ๊ณผ>
โ
โ
โ
*RandomAccessFile ํด๋์ค
RandomAccessFile์ ์ ์ถ๋ ฅ ํด๋์ค ์ค ์ ์ผํ๊ฒ ํ์ผ ์ ์ถ๋ ฅ์ ๋์์ ํ ์ ์๋ ํด๋์ค์ด๋ค. ๋ํ ์ง๊ธ๊น์ง ๋ฐฐ์ด ์คํธ๋ฆผ์ ์ฒ์๋ถํฐ ์ฐจ๋ก๋ก ์๋ฃ๋ฅผ ์ฝ์์ง๋ง RandomAccessFile์ ์์์ ์์น๋ก ์ด๋ํ์ฌ ์๋ฃ๋ฅผ ์ฝ์ ์ ์๋ค. RandomAccessFile์๋ ํ์ผ ํฌ์ธํฐ๊ฐ ์๋๋ฐ, ํ์ฌ ์ด ํ์ผ์ ์ด๋ ์์น์์ ์ฝ๊ณ ์ฐ๋์ง ๊ทธ ์์น๋ฅผ ๊ฐ๋ฆฌํค๋ ์์ฑ์ด๋ค. ์คํธ๋ฆผ์ ์์ฑํ์ง ์๊ณ ๊ฐ๋จํ๊ฒ ํ์ผ์ ์๋ฃ๋ฅผ ์ฐ๊ฑฐ๋ ์ฝ์ ๋ ์ฌ์ฉํ๋ฉด ์ ์ฉํ๋ค. ํ์ผ ํฌ์ธํฐ๊ฐ ์ด๋ํ๋ ์์น๊ฐ ํ์ผ ์๋ฃ๋ฅผ ์ฝ๊ฑฐ๋ ์ฐ์ด๋ ์์น์ด๋ฏ๋ก ํ์ผ ํฌ์ธํฐ์ ์์น๋ฅผ ์ ์๊ฐํ๋ฉฐ ๊ตฌํํด์ผ ํ๋ค.
์์ฑ์ |
์ค๋ช |
RandomAccessFile(File file, String mode) |
์ ์ถ๋ ฅ์ ํ File๊ณผ ์ ์ถ๋ ฅ mode๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ๋๋ค. mode์๋ ์ฝ๊ธฐ ์ ์ฉ "r"๊ณผ ์ฝ๊ณ ์ฐ๊ธฐ ๊ธฐ๋ฅ์ธ "rw"๋ฅผ ์ฌ์ฉํ ์ ์๋ค. |
RandomAccessFile(String file, String mode) |
์ ์ถ๋ ฅ์ ํ ํ์ผ ์ด๋ฆ์ ๋ฌธ์์ด๋ก ๋ฐ๊ณ ์ ์ถ๋ ฅ mode๋ฅผ ๋งค๊ฐ๋ณ์๋ก ๋ฐ๋๋ค. mode์๋ ์ฝ๊ธฐ ์ ์ฉ "r"๊ณผ ์ฝ๊ณ ์ฐ๊ธฐ ๊ธฐ๋ฅ์ธ "rw"๋ฅผ ์ฌ์ฉํ ์ ์๋ค. |
โ
โ
*RandomAccessFile์ ํ์ฉํ์ฌ ์ฌ๋ฌ ์๋ฃํ ๊ฐ์ ์ฝ๊ณ ์ฐ๊ธฐ
โ
RandomAccessFileTest.java
package stream.others;
import java.io.IOException;
import java.io.RandomAccessFile;
public class RandomAccessFileTest {
public static void main(String[] args) throws IOException {
RandomAccessFile rf = new RandomAccessFile("random.txt", "rw");
rf.writeInt(100); // int 4 ๋ฐ์ดํธ
System.out.println("ํ์ผ ํฌ์ธํฐ ์์น : " + rf.getFilePointer()); // ํ์ผ ํฌ์ธํฐ ์์น๋ฅผ ๋ฐํํ๋ ๋ฉ์๋
rf.writeDouble(3.14); // double 8 ๋ฐ์ดํธ
System.out.println("ํ์ผ ํฌ์ธํฐ ์์น : " + rf.getFilePointer());
rf.writeUTF("์๋
ํ์ธ์"); // ์์ ๋ UTF-8 ์ฌ์ฉ ํ๊ธ(3๋ฐ์ดํธ) * 5 + null ๋ฌธ์(2๋ฐ์ดํธ) = 17
System.out.println("ํ์ผ ํฌ์ธํฐ ์์น : " + rf.getFilePointer());
int i = rf.readInt();
double d = rf.readDouble();
String str = rf.readUTF();
System.out.println("ํ์ผ ํฌ์ธํฐ ์์น : " + rf.getFilePointer());
System.out.println(i);
System.out.println(d);
System.out.println(str);
}
}
โ<์คํ ๊ฒฐ๊ณผ>
โ
ํ์ผ ํฌ์ธํฐ ์์น๋ฅผ ์ด๋ํด ์ฃผ๋ seek( ) ๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ ๋งจ ์ฒ์์ผ๋ก ์ด๋ํ๋ค.
package stream.others;
import java.io.IOException;
import java.io.RandomAccessFile;
public class RandomAccessFileTest {
public static void main(String[] args) throws IOException {
RandomAccessFile rf = new RandomAccessFile("random.txt", "rw");
rf.writeInt(100); // int 4 ๋ฐ์ดํธ
System.out.println("ํ์ผ ํฌ์ธํฐ ์์น : " + rf.getFilePointer());
rf.writeDouble(3.14); // double 8 ๋ฐ์ดํธ
System.out.println("ํ์ผ ํฌ์ธํฐ ์์น : " + rf.getFilePointer());
rf.writeUTF("์๋
ํ์ธ์"); // ์์ ๋ UTF-8 ์ฌ์ฉ ํ๊ธ(3๋ฐ์ดํธ) * 5 + null ๋ฌธ์(2๋ฐ์ดํธ) = 17
System.out.println("ํ์ผ ํฌ์ธํฐ ์์น : " + rf.getFilePointer());
rf.seek(0); // ํ์ผ ํฌ์ธํฐ์ ์์น๋ฅผ ๋งจ ์ฒ์์ผ๋ก ์ฎ๊น
System.out.println("ํ์ผ ํฌ์ธํฐ ์์น : " + rf.getFilePointer());
int i = rf.readInt();
double d = rf.readDouble();
String str = rf.readUTF();
System.out.println("ํ์ผ ํฌ์ธํฐ ์์น : " + rf.getFilePointer()); // ์ฝ๊ธฐ๊ฐ ๋๋ ํ ํ์ผ ํฌ์ธํฐ ์์น๋ฅผ ์ถ๋ ฅํจ
System.out.println(i);
System.out.println(d);
System.out.println(str);
}
}
<์คํ ๊ฒฐ๊ณผ>
โ
โโ
โ
์ฐ์ต๋ฌธ์ Q3) FileOutputStream๊ณผ OutputStreamWriter๋ฅผ ํ์ฉํ์ฌ a.txt ํ์ผ์ ๋ค์์ฒ๋ผ ์ถ๋ ฅํด๋ณด๋ผ.
โ
<๋ด๊ฐ ํ ๊ฒ>
package test;
import java.io.OutputStreamWriter;
import java.io.FileOutputStream;
import java.io.IOException;
public class test1 {
public static void main(String[] args) throws IOException {
try (FileOutputStream fos = new FileOutputStream("a.txt"); // ๊ธฐ๋ฐ ์คํธ๋ฆผ
OutputStreamWriter osw = new OutputStreamWriter(fos)) { // ๋ณด์กฐ ์คํธ๋ฆผ
osw.write("์ง๊ธ๊น์ง ์๋ฐ ์ ๋ง ์ฌ๋ฏธ์๊ฒ ๊ณต๋ถํ์ด์^^");
} catch (IOException e) {
System.out.println(e);
}
System.out.println("์ถ๋ ฅ์ด ์๋ฃ๋์์ต๋๋ค.");
}
}
<์คํ ๊ฒฐ๊ณผ>
<์ ์๋์ด ํ ๊ฒ>
package test;
import java.io.OutputStreamWriter;
import java.io.FileOutputStream;
import java.io.IOException;
public class test1 {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("a.txt"); // ๊ธฐ๋ฐ ์คํธ๋ฆผ
OutputStreamWriter osw = new OutputStreamWriter(fos); // ๋ณด์กฐ ์คํธ๋ฆผ
osw.write("์ง๊ธ๊น์ง ์๋ฐ ์ ๋ง ์ฌ๋ฏธ์๊ฒ ๊ณต๋ถํ์ด์^^");
osw.flush(); // ์๋ฅํ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ์ถ๋ ฅ๋๋๋ก ํ๋๊ฒ
}
}
'Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java-๊ธฐ์ด] ์ค์ต (ํ์ ์ฐ์ถ ํ๋ก๊ทธ๋จ 2) (0) | 2021.02.24 |
---|---|
[Java-๊ธฐ์ด] ์ค์ต (ํ์ ์ฐ์ถ ํ๋ก๊ทธ๋จ) (0) | 2021.02.24 |
[Java-๊ธฐ์ด] ์ง๋ ฌํ (0) | 2021.02.23 |
[Java-๊ธฐ์ด] ๋ณด์กฐ ์คํธ๋ฆผ (0) | 2021.02.23 |
[Java-๊ธฐ์ด] ๋ฌธ์ ๋จ์ ์คํธ๋ฆผ (0) | 2021.02.23 |
๋๊ธ