質問編集履歴

1 誤字

S.K1994

S.K1994 score 14

2019/04/06 18:03  投稿

Javaのファイル操作、文字列置換について
### 前提・実現したいこと
フレームワークを変更するにあたって、ファイルごとにフレームワークによって違う記述の内容を一括で変換するプログラムを作成したい。
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>
コード
```
```ここに言語名を入力
ソースコード
```
  • Java

    24795 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る