public class TxtInputStream extends FileInputStream {
public TxtInputStream(String fileName) throws FileNotFoundException, IOException{
super(fileName);
try {
Pattern pattern = Pattern.compile("\\.txt$");
Matcher matcher = pattern.matcher(fileName);
if (!matcher.find()) {
super.close();
throw new UnsupportedFileNameException();
}
}catch (UnsupportedFileNameException e){
}
}
public static void main(String[] args) {
}
}
Я так понял задачу можно решить разными способами. Пытаюсь безуспешно составить регулярку. Не понимаю как они работают в java прочитал несколько статей. Я так понимаю перед .txt могут идти любые символы, кроме служебных. Я прочитал несколько статей, где то точку экранируют одним слешем, в java я так понял двумя. Не могу найти нормальной статьи именно по регуляркам в java( package com.javarush.task.task18.task1814;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
UnsupportedFileName
*/
public class TxtInputStream extends FileInputStream {
public TxtInputStream(String fileName) throws FileNotFoundException, IOException{
super(fileName);
try {
Pattern pattern = Pattern.compile("\\w+\\.txt$");
Matcher matcher = pattern.matcher(fileName);
if (!matcher.find()) {
super.close();
throw new UnsupportedFileNameException();
}
}catch (UnsupportedFileNameException e){
}
}
public static void main(String[] args) {
}
}