Próbuję odebrać ogromny plik tekstowy jako strumień wejściowy i chcę przekonwertować segment łańcuchowy na inny ciąg. Jestem ściśle zdezorientowany, jak to zrobić, działa dobrze, jeśli konwertuję cały inputstream jako ciąg, którego nie chcę, ponieważ część zawartości jest tracona. Czy ktoś może pomóc, jak to zrobić? np. jeśli mam plik, który ma zawartość "To jest ciąg testowy, który należy zmodyfikować". Chcę zaakceptować ten ciąg jako strumień wejściowy i chcę zmodyfikować zawartość na "To jest ciąg testowy, który został zmodyfikowany" (zastępując "ma być" znakiem "is").Zamień fragment łańcucha ze strumienia wejściowego
public static void main(String[] args) {
String string = "This is the test string which needs to be modified";
InputStream inpstr = new ByteArrayInputStream(string.getBytes());
//Code to do
}
W tym chcę wyjście jako: Jest to ciąg testów, który jest modyfikowany
Dziękując z góry.
czytałem strumień wejściowy w liniach (throuh BufferedReader) i wykonać podstawienie na całej linii przed wysłaniem do wyjścia. Bardziej elegancki sposób, podklasy mój WholeLineChangerInputStream z BufferedReader, zastąpić metodę readLine() (stosując podstawienie) i użyć, że ^^ – BigMike
Zasadniczo potrzebujesz: http://tutorials.jenkov.com/java-howto/replace-strings- in-stream-arrays-files.html, a następnie zastosować go do strumienia wejściowego – bvdb