前提・実現したいこと
Javaの学習をしております。ファイルごとに拡張子で絞り込みをし、記述の内容を一括で変換するプログラムを作成したい。
Javaで作られたプログラムのフレームワークによって記述が違う部分を置換したいのです。
現状、ファイル操作を使い特定の拡張子のファイルを抽出し、BufferedReaderのreadLineメソッドを使用し、1行ずつ文字列を読み込み、特定の文字列を含む行を見つけ出し、特定の文字列を特定の文字列に置換したいです。
発生している問題・エラーメッセージ
1ファイル内の文字列全てを読み込めていない。
2文字列を置換するために、BufferedWriterを使用する必要があると思うのですが、BufferedWriterとどのようにくみあわせて実装すればいいのかがわからない。
該当のソースコード
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FilenameFilter; import java.io.IOException; public class JSP { public void file() throws IOException{ FilenameFilter filter= new FilenameFilter() { @Override public boolean accept(File file, String str) { if(str.indexOf("jsp") != -1) { return true; }else { return false; } } }; File[] list = new File("./").listFiles(filter); if(list != null) { for(int i= 0; i<list.length; i++) { if(list[i].isFile()) { System.out.println("ファイル名" + list[i]); FileReader file = new FileReader(list[i]); //BufferedReaderでフィルターを貼り、readLine()で1行ずつ読み込む BufferedReader br = new BufferedReader(file); String data = br.readLine(); while(data != null) { if(data.equals(".*apple")) { String str = data.replaceAll("apple", "aiueo"); System.out.println(str); data = br.readLine(); } } br.close(); } } }else { System.out.println("JPSファイルはありません"); } } } コード
import java.io.IOException; public class Main { public static void main(String[] args) throws IOException{ JSP jsp = new JSP(); jsp.file(); } } コード
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <% System.out.println("apple"); %> </body> </html> コード
ソースコード