При использовании BufferedReader, считываются не те символы..
Вот что в файле:
А вот что он читает:
Почему то 8, пробел и тд... файл то же. И эта проблема только при использовании BufferedReader, если просто FileInputStream использовать, то все ОК. Но тогда не ясно, как изменить кодировку
второй вопрос, по регулярным выражениям. Как сделать, чтобы матчер искал именно символ точки? он тут все время считает любым символом (что логично).
Пробовал
/.
(.)
даже ввел строку String point = ".";
Все равно считает ее любым символом... package com.javarush.task.task18.task1822;
/*
Поиск данных внутри файла
*/
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader fileNameReader = new BufferedReader(new InputStreamReader(System.in));
String fileName = fileNameReader.readLine();
FileInputStream fileInputStream = new FileInputStream(fileName);
String s="";
while (fileInputStream.available()>0){
s+=(char)fileInputStream.read();
}
String point = ".";
Pattern pattern = Pattern.compile(".*"+args[0]+"\\s.*\\s\\d*"+point+"\\d*\\s\\d*");
Matcher matcher = pattern.matcher(s);
while(matcher.find()){
System.out.println(matcher.group());
}
//System.out.println(matcher.matches());
}
}