1. ファイルの内容をバイト単位で読み取ります
public class ReadFromFile {public static void readFileByBytes(String fileName) {File file = new File(fileName);InputStream in = null;try {System.out.println("一度に 1 ワードずつ、ファイルの内容をバイト単位で読み取ります。セクション: ");//一度に 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 リーダー = null;try {System.out.println("ファイルの内容を一度に 1 バイトずつ文字単位で読み取ります:"); / /一度に 1 文字ずつ読み取ります Reader = new InputStreamReader(new FileInputStream(file));int tempchar;while ((tempchar = Reader.read()) != -1) {// Windows の場合、2 つの文字 /r/n が一緒にある場合、それらは改行を表します。 // ただし、これら 2 つの文字を別々に表示すると、行が 2 回変更されます。 // したがって、/r をブロックするか、/n をブロックします。そうしないと、空白行が多くなってしまいます。 if (((char) tempchar) != '/r') {System.out.print((char) tempchar);}}reader.close();} catch (例外 e) {e.printStackTrace();} try {System.out.println("ファイルの内容を文字単位で読み取り、一度に複数バイトを読み取ります:");//一度に複数の文字を読み取ります char[] tempchars = new char[30];int charread = 0;reader = new InputStreamReader(new FileInputStream(fileName));//複数の文字を文字配列に読み取ります。charread は一度に読み取られる文字数ですが、((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);} print(tempchars[i]);}}}}} catch (例外 e1) {e1.printStackTrace();}finally {if (reader != null) {try {reader.close();} catch (IOException e1) {}}}}
3. ファイルの内容を 1 行ずつ読み取ります
public static void readFileByLines(String fileName) {File file = new File(fileName);BufferedReader Reader = null;try {System.out.println("ファイルの内容を行単位で読み取り、一度に 1 行全体を読み取ります:") ;reader = new BufferedReader(new FileReader(file));String tempString = null;int line = 1;//ファイルの終わりとして null が読み取られるまで、一度に 1 行ずつ読み取ります。 ((tempString = Reader.readLine()) != null) {//行番号を表示 System.out.println("line " + line + ": " + tempString);line++;}reader.close();} catch (IOException e) {e.printStackTrace();}finally {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();}finally {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(fileName);ReadFromFile.readFileByChars(fileName);ReadFromFile.readFileByLines(fileName);ReadFromFile.readFileByRandomAccess(fileName);}}
5. ファイルの末尾にコンテンツを追加します
public class AppendToFile {public static void appendMethodA(String fileName, String content) {try {//ランダム アクセス ファイル ストリームを開き、RandomAccessFile の読み取りと書き込み RandomFile = new RandomAccessFile(fileName, "rw");// ファイルの長さ、ワード数 Number ofセクション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 {/ /ファイル ライターを開きます。コンストラクターの 2 番目のパラメーター true は、ファイルを追加形式で書き込むことを意味します。 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, "終了を追加します。 /n");//ファイルの内容を表示 ReadFromFile.readFileByLines(fileName);}}