1. 파일 내용을 바이트 단위로 읽습니다.
public class ReadFromFile {public static void readFileByBytes(String fileName) {File file = new File(fileName);InputStream in = null;try {System.out.println("한 번에 한 단어씩 바이트 단위로 파일 내용을 읽습니다. 섹션: ");//한 번에 1바이트 읽기 in = new FileInputStream(file);int tempbyte;while ((tempbyte = in.read()) != -1) {System.out.write(tempbyte);}in.close();} catch (IOException e) {e.printStackTrace();return;}try {System.out.println("바이트 단위로 파일 읽기 내용, 여러 읽기 한 번에 바이트 수: ");// 한 번에 여러 바이트 읽기 byte[] tempbytes = new byte[100];int byteread = 0;in = new FileInputStream(fileName);ReadFromFile.showAvailableBytes(in);//여러 바이트를 바이트 배열로 읽습니다. byteread는 한 번에 읽은 바이트 수입니다. while ((byteread = in.read(tempbytes)) != - 1) { System.out.write(tempbytes, 0, byteread);}} catch (예외 e1) {e1.printStackTrace();} finally {if (in != null) {try {in.close();} catch (IOException e1) {}}}}
2. 문자별로 파일 내용 읽기
public static void readFileByChars(String fileName) {File file = new File(fileName);Reader reader = null;try {System.out.println("한 번에 1바이트씩 문자 단위로 파일 내용을 읽습니다.") / /한 번에 한 문자 읽기 reader = new InputStreamReader(new FileInputStream(file));int tempchar;while ((tempchar = reader.read()) != -1) {// Windows의 경우 두 문자 /r/n이 함께 있으면 개행을 나타냅니다. // 하지만 이 두 문자가 별도로 표시되면 줄이 두 번 변경됩니다. // 따라서 /r을 차단하거나 /n을 차단합니다. 그렇지 않으면 빈 줄이 많이 생길 것입니다. if (((char) tempchar) != '/r') {System.out.print((char) tempchar);}}reader.close();} catch (Exception e) {e.printStackTrace();} try {System.out.println("파일 내용을 문자 단위로 읽고, 한 번에 여러 바이트를 읽습니다:");//한 번에 여러 문자를 읽습니다. char[] tempchars = new char[30];int charread = 0;reader = new InputStreamReader(new FileInputStream(fileName));//여러 문자를 문자 배열로 읽어옵니다. charread는 한 번에 읽는 문자 수입니다. while ((charread = reader.read(tempchars)) != -1 ) {// 또한 /r을 보호하고 if ((charread == tempchars.length)&& (tempchars[tempchars.length - 1] != '/r')) 표시하지 않습니다. {System.out.print(tempchars);} else {for (int i = 0; i < charread; i++) {if (tempchars[i] == '/r') {continue;} else {System.out. print(tempchars[i]);}}}}} catch(예외 e1) {e1.printStackTrace();} 마지막으로 {if (reader != null) {try {reader.close();} catch (IO예외 e1) {}}}}
3. 파일 내용을 한 줄씩 읽습니다.
public static void readFileByLines(String fileName) {File file = new File(fileName);BufferedReader reader = null;try {System.out.println("파일 내용을 줄 단위로 읽고, 한 번에 전체 줄을 읽습니다.") ;reader = new BufferedReader(new FileReader(file));String tempString = null;int line = 1;//파일 끝으로 null을 읽을 때까지 한 번에 한 줄씩 읽습니다. ((tempString = reader.readLine()) != null) {//줄 번호 표시 System.out.println("line " + line + ": " + tempString);line++;}reader.close();} catch (IOException e) {e.printStackTrace();} 마지막으로 {if (reader != null) {try {reader.close();} catch (IOException e1) {}}}}
4. 파일 내용을 무작위로 읽습니다.
public static void readFileByRandomAccess(String fileName) {RandomAccessFile randomFile = null;try {System.out.println("무작위로 파일 내용 읽기:");//읽기 전용 모드에서 무작위 액세스 파일 스트림 열기 randomFile = new RandomAccessFile( fileName, "r"); // 파일 길이, 길이의 바이트 수 fileLength = randomFile.length() // 파일의 시작 위치를 읽습니다. BeginIndex = (fileLength > 4) ? 4 : 0;//파일 읽기 시작 위치를 BeginIndex 위치로 이동합니다. randomFile.seek(beginIndex);byte[] bytes = new byte[10];int byteread = 0;//한 번에 10바이트씩 읽습니다. 파일 내용이 10바이트 미만인 경우 나머지 바이트를 읽습니다. // 한 번에 읽은 바이트 수를 bytereadwhile ((byteread = randomFile.read(bytes)) != -1) {System.out.write(bytes, 0, byteread);}} catch (IOException e)에 할당합니다. {e.printStackTrace();} 마지막으로 {if (randomFile != null) {try {randomFile.close();} catch (IOException e1) {}}}}private static void showAvailableBytes(InputStream in) {try {System.out.println("현재 바이트 입력 스트림의 바이트 수:" + in.available());} catch (IOException e) {e.printStackTrace();} }public static void main(String[] args) {String fileName = "C:/temp/newTemp.txt";ReadFromFile.readFileByBytes(파일 이름);ReadFromFile.readFileByChars(파일 이름);ReadFromFile.readFileByLines(파일 이름);ReadFromFile.readFileByRandomAccess(파일 이름);}}
5. 파일 끝에 내용을 추가합니다.
public class AppendToFile {public static void appendMethodA(String fileName, String content) {try {//임의 액세스 파일 스트림을 열고 RandomAccessFile을 읽고 씁니다.randomFile = new RandomAccessFile(fileName, "rw");//파일 길이, 단어 수 ofsection long fileLength = randomFile.length();//쓰기 파일 포인터를 파일 끝으로 이동합니다. randomFile.seek(fileLength);randomFile.writeBytes(content);randomFile.close();} catch (IOException e) {e.printStackTrace();}}public static void appendMethodB(String fileName, String content) {try {/ /파일 작성기 열기. 생성자의 두 번째 매개변수 true는 파일을 추가 형식으로 작성하는 것을 의미합니다. FileWriter = new FileWriter(fileName, true);writer.write(content);writer.close();} catch (IOException e) {e.printStackTrace();}} public static void main(String[] args) {String fileName = "C:/temp /newTemp.txt";String content = "new Append!";//AAppendToFile.appendMethodA(fileName, content);AppendToFile.appendMethodA(fileName, "append end. /n");//파일 내용 표시 ReadFromFile.readFileByLines(fileName);//BAppendToFile.appendMethodB(fileName, content);AppendToFile 메소드에 따라 파일을 추가합니다. appendMethodB( fileName, "end를 추가합니다. /n");//파일 내용 표시 ReadFromFile.readFileByLines(fileName);}}