728x90
package com.test01;
import java.io.File;
import java.io.IOException;
public class MTest01 {
public static void main(String[] args) {
// C에 test_io라는 폴더 생성
File fi = new File("C:/test_io");
// test_io폴더가 있으면 exists출력 없으면 make directory출력 하고 폴더 생성
if (fi.exists()) {
System.out.println("exists");
} else {
System.out.println("make directory");
fi.mkdirs();
}
// fi 안에 (밑에) AA라는 folder(directory) 생성
File fiAA = new File(fi, "AA");
fiAA.mkdir();
// test_io 아래 BB폴더 생성
File fiBB = new File("C:\\test_io","BB");
fiBB.mkdir();
// AA 밑에 a.txt 파일 생성
File aTxt = new File(fiAA, "a.txt");
try {
// checked exception
aTxt.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}
}
첫 번째 실행(위쪽)과 두 번째 실행(아래쪽) 결과
package com.test01;
import java.io.File;
public class MTest02 {
public static void main(String[] args) {
File fi = new File("C:\\");
prnList01(fi);
System.out.println("--------------------------------------");
prnList02(fi);
}
public static void prnList01(File fi) {
for (String list : fi.list()) {
System.out.println(list);
}
}
public static void prnList02(File fi) {
//파일과 디렉토리를 구분해서 출력하자.
//file : ...
//dir : ...
//폴더의 갯수 : 0개
//파일의 갯수 : 0개
int fileCount = 0;
int dirCount = 0;
for (File f : fi.listFiles()) {
if(f.isDirectory()){
System.out.println("dir : " + f.getName());
dirCount++;
} else if(f.isFile()) {
System.out.println("file : " + f.getName());
fileCount++;
}
}
System.out.println("폴더의 갯수 : " + dirCount);
System.out.println("파일의 갯수 : " + fileCount);
}
}
이 코드는 컴퓨터마다 실행되는 결과가 다르니 한번 직접 출력해보세요~
package com.test01;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class MTest03 {
public static void main(String[] args) {
File fi = new File("a.txt");
try {
MyOutput(fi);
MyInput(fi);
}catch(IOException e) {
e.printStackTrace();
}
}
// throws : 해당 메소드 내부에서 발생할 수 있는 예외를, 메소드 호출하는 곳으로 위임
private static void MyOutput(File fi) throws IOException{
FileOutputStream fo = new FileOutputStream(fi);
for(int i = 65; i < 91; i++) {
fo.write(i);
}
//반드시!!
fo.close();
}
private static void MyInput(File fi) throws IOException {
FileInputStream fin = new FileInputStream(fi);
int res = 0;
while((res = fin.read()) != -1) {
System.out.print((char)res);
}
fin.close();
}
}
MTest03.java 실행 결과
이 코드를 출력시키면 콘솔 창에 위와 같은 결과가 나오고 a.txt라는 파일이 생기며 해당 폴더 안에도 이 내용이 적혀 있습니다.
package com.test01;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class MTest04 {
public static void main(String[] args) throws IOException {
File fi = new File("b.txt");
MyOutput(fi);
MyInput(fi);
}
// read
private static void MyInput(File fi) throws IOException {
FileReader fr = new FileReader(fi);
int ch;
while((ch = fr.read()) != -1) {
System.out.print(ch);
}
fr.close();
}
// write
private static void MyOutput(File fi) throws IOException {
FileWriter fw = new FileWriter(fi, false);
fw.write("연습중입니다.\n");;
fw.append("abc\t").append("def");
fw.close();
}
}
MTest04.java의 실행 후 콘솔 창의 결과(위쪽)과 실행 후 생긴 b.txt 파일 안의 내용 결과(아래쪽)
package com.test01;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class MTest05 {
public static void main(String[] args) {
File fi = new File("b.txt");
MyOutput(fi);
MyInput(fi);
}
private static void MyOutput(File fi) {
FileWriter fw = null;
try {
fw = new FileWriter(fi, true);
fw.write("다시 연습합니다.");
fw.append("abc\n");
}catch(IOException e) {
e.printStackTrace();
}finally {
try {
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
//close 알아서
}
}
private static void MyInput(File fi) {
//try with resources
try(FileReader fr = new FileReader(fi)){
int ch;
while((ch = fr.read()) != -1 ) {
System.out.print((char)ch);
}
}catch(FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}
}
}
실행시킬 때마다 누적됩니다.
b.txt 다시 볼까요?
package com.test02;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class MTest01 {
public static void main(String[] args) throws IOException {
String file = "a.jpg";
/*
파일 객체를 만들어서 넣고있음
FileInputStream fi = new FileInputStream(file);
BufferedInputStream bi = new BufferedInputStream(fi);
한줄로 만들수 있다
*/
BufferedInputStream bi = new BufferedInputStream(new FileInputStream(file));
FileOutputStream fo = new FileOutputStream(new File("c.jpg"));
int a = 0;
while ((a = bi.read()) != -1){
fo.write(a);
}
//가장 마지막에 연결한 객체를 가장 먼저 닫자!!
fo.close();
bi.close();
}
}
이 코드는 폴더 안에 a.jpg 파일이 있는 상태에서 실행시켜주세요!
728x90
'Java 관련 > Java' 카테고리의 다른 글
[Java] 람다식(Lamda Expression) (0) | 2021.11.21 |
---|---|
[Java] 쓰레드(Thread) (0) | 2021.11.20 |
[Java] 예외 처리(Exception) (0) | 2021.11.18 |
[Java] Comparable & Comparator (0) | 2021.11.17 |
[Java] 이터레이터(iterator) (0) | 2021.11.16 |