FileInputStream
BufferedInputStream
long beforeTime = System.currentTimeMillis();
for (int in = 0; in < 10000; in++) {
try {
FileInputStream fileInput = new FileInputStream("codestates.txt");
int i = 0;
while ((i = fileInput.read()) != -1) { //fileInput.read()의 리턴값을 i에 저장한 후, 값이 -1인지 확인합니다.
System.out.print((char) i);
}
fileInput.close();
} catch (Exception e) {
System.out.println(e + " ");
System.out.println("ERROR!");
}
}
long afterTime = System.currentTimeMillis();
System.out.println(afterTime - beforeTime); // 550 (10000번 실행시 걸린 시간)
long beforeTime2 = System.currentTimeMillis();
for (int in = 0; in < 10000; in++){
try {
FileInputStream fileInput = new FileInputStream("codestates.txt");
BufferedInputStream bufferedInput = new BufferedInputStream(fileInput);
int i = 0;
while ((i = bufferedInput.read()) != -1) {
System.out.print((char)i);
}
fileInput.close();
}
catch (Exception e) {
System.out.println(e);
}
}
long afterTime2 = System.currentTimeMillis();
System.out.println(afterTime2 - beforeTime2); // 477 (10000번 실행시 걸린 시간)
FileOutputStream
try {
FileOutputStream fileOutput = new FileOutputStream("codestates.txt");
String word = "code";
byte b[] = word.getBytes();
fileOutput.write(b);
fileOutput.close();
}
catch (Exception e) {
System.out.println(e);
}
FileReader & FileWriter
FileReader & BufferedReader
long beforeTime = System.currentTimeMillis();
for (int i = 0; i < 10000; i++){
try {
String fileName = "codestates.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();
}
}
long afterTime = System.currentTimeMillis();
System.out.println(afterTime - beforeTime); // 534
long beforeTime2 = System.currentTimeMillis();
for (int i = 0; i < 10000; i++){
try {
String fileName = "codestates.txt";
FileReader file = new FileReader(fileName);
BufferedReader buffered = new BufferedReader(file);
int data = 0;
while((data=buffered.read()) != -1) {
System.out.print((char)data);
}
file.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
long afterTime2 = System.currentTimeMillis();
System.out.println(afterTime2 - beforeTime2); // 522
try {
String fileName = "codestates.txt";
FileWriter writer = new FileWriter(fileName);
String str = "백현우가 8수를 진행합니다.";
writer.write(str);
writer.close();
}
catch (IOException e) {
e.printStackTrace();
}
import java.io.*;
public class FileExample {
public static void main(String args[]) throws IOException {
File file = new File("../codestates.txt");
System.out.println(file.getPath()); // ..\codestates.txt (파일의 위치를 나타냄)
System.out.println(file.getParent()); // ..\ 상위의 폴더의 위치를 나타냄
System.out.println(file.getCanonicalPath()); // C:\Users\c\Desktop\Codestate\000_Test\codestates.txt 이 위치하는 절대위치를 나타냄
System.out.println(file.canWrite()); // true 파일 변경 여부 확인
// 위치와 파일 이름을 지정 (인스턴스를 만든다고 만들어지지는 않음)
File file = new File("./", "newCodestates.txt");
file.createNewFile(); // 파일 만들기
// 폴더을 지정해 안에 있는 파일들을 지정 가능
File parentDir = new File("./");
File[] list = parentDir.listFiles(); // 현재 위치에 있는 파일을 배열로 만듦
// 반복문 작업도 가능
String prefix = "code";
for(int i =0; i <list.length; i++) {
String fileName = list[i].getName();
if(fileName.endsWith("txt") && !fileName.startsWith("code")) {
list[i].renameTo(new File(parentDir, prefix + fileName));
}
}
}
}