Не могу понять что за.... . Валидатор говорит: "Убедись, что ты в своем решении используешь FileWriter.", хотя я его использую.
Я пробовал проверить как работает программа с помощью тест файлов. Пробовал использовать и FileWriter и OutputStreamWriter. Но почему то метод write() в объекта BufferedWriter пишет в файл иероглифы. Смотрел по дебагеру, все работает ок до write(), write() пишет какой то бред.
P.S. в обоих файлах кодировка UNICODE.
package com.javarush.task.task19.task1925;
/*
Длинные слова
*/
import java.io.*;
import java.util.stream.Stream;
public class Solution {
public static void main(String[] args) throws IOException {
String fileName = args[0];
String targetFile = args[1];
BufferedReader reader = new BufferedReader(new FileReader(fileName));
BufferedWriter writer = new BufferedWriter(new FileWriter(targetFile, true));
// Testing files
// BufferedReader reader = new BufferedReader(new InputStreamReader(
// new FileInputStream("C:\\Users\\User\\Desktop\\2.txt"), "UNICODE"));
// BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
// new FileOutputStream("C:\\Users\\User\\Desktop\\3.txt", true), "UNICODE"));
while (reader.ready()){
String[] words = reader.readLine().split("\\W");
Stream.of(words).forEach(e -> {
if (e.length() > 6) {
try {
writer.write(e);
writer.write(",");
writer.flush();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
// for (String word : words){
// if (word.length() > 6){
// writer.write(word);
// writer.write(",");
// writer.flush();
// }
// }
writer.newLine();
writer.flush();
}
reader.close();
writer.close();
}
}package com.javarush.task.task19.task1925;
/*
Длинные слова
*/
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.stream.Stream;
public class Solution {
public static void main(String[] args) throws IOException {
String fileName = args[0];
String targetFile = args[1];
BufferedReader reader = new BufferedReader(new FileReader(fileName));
BufferedWriter writer = new BufferedWriter(new FileWriter(targetFile, true));
// BufferedReader reader = new BufferedReader(new InputStreamReader(
// new FileInputStream("C:\\Users\\User\\Desktop\\2.txt"), "UNICODE"));
// BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(
// new FileOutputStream("C:\\Users\\User\\Desktop\\3.txt", true), "UNICODE"));
while (reader.ready()){
String[] words = reader.readLine().split("\\W");
Stream.of(words).forEach(e -> {
if (e.length() > 6) {
try {
writer.write(e);
writer.write(",");
writer.flush();
} catch (IOException e1) {
e1.printStackTrace();
}
}
});
// for (String word : words){
// if (word.length() > 6){
// writer.write(word);
// writer.write(",");
// writer.flush();
// }
// }
// writer.newLine();
// writer.flush();
}
reader.close();
writer.close();
}
}