import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
// ファイルã®èªã¿è¾¼ã¿ã¨æ›¸ãè¾¼ã¿ã‚’行ã†ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイス
interface FileOperation {
String readFile(String filePath) throws IOException;
void writeFile(String filePath, String content) throws IOException;
}
// FileOperation インターフェイスã®å®Ÿè£…クラス
class FileHandler implements FileOperation {
@Override
public String readFile(String filePath) throws IOException {
StringBuilder content = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
content.append(line).append('\n');
}
}
return content.toString();
}
@Override
public void writeFile(String filePath, String content) throws IOException {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
writer.write(content);
}
}
}
public class Main {
public static void main(String[] args) {
// ファイルã®èªã¿è¾¼ã¿ã¨æ›¸ãè¾¼ã¿ã‚’行ã†ãŸã‚ã® FileHandler インスタンスを生æˆ
FileOperation fileHandler = new FileHandler();
// èªã¿è¾¼ã‚€ãƒ•ァイルã®ãƒ‘ス
String filePath = "example.txt";
try {
// ファイルã®å†…容をèªã¿è¾¼ã¿
String fileContent = fileHandler.readFile(filePath);
System.out.println("File Content:\n" + fileContent);
// 書ã込む内容
String newContent = "This is new content.";
// ãƒ•ã‚¡ã‚¤ãƒ«ã«æ–°ã—ã„内容を書ãè¾¼ã¿
fileHandler.writeFile(filePath, newContent);
System.out.println("File Content After Writing:\n" + fileHandler.readFile(filePath));
} catch (IOException e) {
e.printStackTrace();
}
}
}
ã“ã®ä¾‹ã§ã¯ã€FileHandler クラス㌠FileOperation インターフェイスを実装ã—ã¦ãŠã‚Šã€ãƒ•ァイルã®èªã¿è¾¼ã¿ã¨æ›¸ãè¾¼ã¿ã‚’行ã„ã¾ã™ã€‚Main クラスã§ã¯ã€FileHandler クラスã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’生æˆã—ã€ãƒ•ァイルã®èªã¿æ›¸ãæ“作を実行ã—ã¦ã„ã¾ã™ã€‚
ファイルæ“作ã®ãŸã‚ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイス
ファイルæ“作ã®ãŸã‚ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスをè¨è¨ˆã™ã‚‹ã“ã¨ã¯ã€ç•°ãªã‚‹ã‚¯ãƒ©ã‚¹ãŒå…±é€šã®ãƒ•ァイルæ“作メソッドをæä¾›ã—ã€ã‚³ãƒ¼ãƒ‰ã®å†åˆ©ç”¨æ€§ã¨æ‹¡å¼µæ€§ã‚’高ã‚る手段ã§ã™ã€‚以下ã«ã€ã“ã®ã‚¢ãƒ—ãƒãƒ¼ãƒã®è§£èª¬ã‚’示ã—ã¾ã™ã€‚
ファイルæ“作ã®ãŸã‚ã®ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイス(FileOperation)
import java.io.IOException;
interface FileOperation {
String readFile(String filePath) throws IOException;
void writeFile(String filePath, String content) throws IOException;
}
readFileメソッド: ãƒ•ã‚¡ã‚¤ãƒ«ã®æŒ‡å®šã•れãŸãƒ‘スã‹ã‚‰å†…容をèªã¿å–ã‚Šã€æ–‡å—列ã¨ã—ã¦è¿”ã—ã¾ã™ã€‚ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã¯IOExceptionをスãƒãƒ¼ã™ã‚‹å¯èƒ½æ€§ãŒã‚ã‚‹ãŸã‚ã€å‘¼ã³å‡ºã—å…ƒã§ä¾‹å¤–処ç†ãŒå¿…è¦ã§ã™ã€‚writeFileメソッド: 指定ã•れãŸãƒ‘スã®ãƒ•ã‚¡ã‚¤ãƒ«ã«æŒ‡å®šã•れãŸå†…容を書ãè¾¼ã¿ã¾ã™ã€‚åŒæ§˜ã«ã€ã“ã®ãƒ¡ã‚½ãƒƒãƒ‰ã‚‚IOExceptionをスãƒãƒ¼ã™ã‚‹å¯èƒ½æ€§ãŒã‚りã¾ã™ã€‚
ファイルæ“作ã®å®Ÿè£…クラス(FileHandler)
import java.io.*;
class FileHandler implements FileOperation {
@Override
public String readFile(String filePath) throws IOException {
StringBuilder content = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader(filePath))) {
String line;
while ((line = reader.readLine()) != null) {
content.append(line).append('\n');
}
}
return content.toString();
}
@Override
public void writeFile(String filePath, String content) throws IOException {
try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) {
writer.write(content);
}
}
}
readFileメソッドã®å®Ÿè£…:BufferedReaderを使用ã—ã¦æŒ‡å®šã•れãŸãƒ•ァイルã‹ã‚‰è¡Œã‚’èªã¿å–りã€ãれを文å—列ã«è¿½åŠ ã—ã¾ã™ã€‚writeFileメソッドã®å®Ÿè£…:BufferedWriterを使用ã—ã¦æŒ‡å®šã•れãŸãƒ•ã‚¡ã‚¤ãƒ«ã«æ–‡å—列を書ãè¾¼ã¿ã¾ã™ã€‚
ã“ã®ã‚ˆã†ã«ã€FileHandler クラス㯠FileOperation インターフェイスを実装ã—ã€ãƒ•ァイルã®èªã¿æ›¸ãメソッドをæä¾›ã—ã¦ã„ã¾ã™ã€‚ä»–ã®ã‚¯ãƒ©ã‚¹ãŒãƒ•ァイルæ“作を行ã„ãŸã„å ´åˆã€FileOperation インターフェイスを実装ã™ã‚‹ã“ã¨ã§ã€åŒã˜ã‚¤ãƒ³ã‚¿ãƒ¼ãƒ•ェイスを介ã—ã¦ãƒ•ァイルæ“ä½œã®æ©Ÿèƒ½ã‚’利用ã§ãã¾ã™ã€‚
「017 インターフェイスã€å•題集リスト
🎯 実習ã§ç†è§£ã‚’æ·±ã‚よã†
ã“ã®å†…容ã«ã¤ã„ã¦JavaDrillã§å®Ÿéš›ã«æ‰‹ã‚’å‹•ã‹ã—ã¦å¦ç¿’ã§ãã¾ã™


コメント