package com.javarush.test.level19.lesson10.home07; /* Длинные слова В метод main первым параметром приходит имя файла1, вторым - файла2 Файл1 содержит слова, разделенные пробелом. Записать через запятую в Файл2 слова, длина которых строго больше 6 Закрыть потоки. Не использовать try-with-resources Пример выходных данных: длинное,короткое,аббревиатура */ import java.io.*; import java.nio.charset.StandardCharsets; import java.util.StringTokenizer; public class Solution { public static void main(String[] args) throws IOException { BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(args[0]), StandardCharsets.UTF_8)); String line; boolean isntFirst = false; while ((line = bufferedReader.readLine()) != null) { //берём строку StringTokenizer stringTokenizer = new StringTokenizer(line, " "); StringBuilder sb = new StringBuilder(); while(stringTokenizer.hasMoreTokens()) { String a = stringTokenizer.nextToken(); if (a.length() > 6 && stringTokenizer.hasMoreTokens()) { sb.append(a); sb.append(","); } else if (a.length() > 6) { sb.append(a); sb.append("\n"); } } String x = sb.toString(); //строка готова для записи File file = new File(args[1]); FileWriter fr = new FileWriter(file, isntFirst); isntFirst = true; fr.write(x); //без закрытия этого потока файл не запишется fr.close(); } bufferedReader.close(); } }
Leave A Comment