0

署名が次のようなメソッドを使用する必要があります

aMethod(FileInputStream);

私はそのメソッドをこのように呼びます

FileInputStream inputStream = new FileInputStream(someTextFile);
aMethod(inputStream);

に渡される前にsomeTextFileから読み取られているcharを削除/編集したいaMethod(inputStream)

aMethodの署名を変更したり、オーバーロードしたりすることはできません。そして、それは単にInputStreamを取ります。文字列をパラメータとして使用するメソッドの場合、この質問はしません。

私はInputStreamnoobです。お知らせ下さい。

4

3 に答える 3

2

文字列を入力ストリームに変換できます

String str = "Converted stuff from reading the other inputfile and modifying it";
InputStream is = new ByteArrayInputStream(str.getBytes());
于 2013-02-05T16:51:36.347 に答える
1

これが役立つかもしれない何かです。.txtファイルを取得します。次に、それをロードし、行ごとに通過します。あなたがやりたいことをするためにあなたはコメントされた領域に記入しなければなりません。

 public void parseFile() {
    String inputLine;
    String filename = "YOURFILE.txt";
    Thread thisThread = Thread.currentThread();
    ClassLoader loader = thisThread.getContextClassLoader();
    InputStream is = loader.getResourceAsStream(filename);
    try {
        FileWriter fstream = new FileWriter("path/to/NEWFILE.txt");
        BufferedWriter out = new BufferedWriter(fstream);
        BufferedReader reader = new BufferedReader(
                new InputStreamReader(is));
        while((inputLine = reader.readLine()) != null) {

            String[] str = inputLine.split("\t");
            if(/* IF WHAT YOU WANT IS IN THE FILE ADD IT */) {
                // DO SOMETHING OR ADD WHAT YOU WANT
                out.append(str);
                out.newLine();
            }
        }
        reader.close();
        out.close();
    } catch (Exception e) {
        e.getMessage();
    }
}
于 2013-02-05T16:51:47.800 に答える
1

要件に合う可能性のFilterInputStreamある、拡張された別のクラスを見たことがありますか?InputStreamクラスのドキュメントから

FilterInputStreamには、他の入力ストリームが含まれています。これは、データの基本的なソースとして使用され、途中でデータを変換したり、追加の機能を提供したりする可能性があります。

また、あなたの質問に似ているように見えるこの質問も見てください。

于 2013-02-05T17:24:02.190 に答える