package com.javarush.task.task16.task1630;
import java.io.*;
public class Solution {
public static String firstFileName;
public static String secondFileName;
//add your code here - добавьте код тут
static {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
try {
firstFileName = reader.readLine();
secondFileName = reader.readLine();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws InterruptedException, IOException {
systemOutPrintln(firstFileName);
systemOutPrintln(secondFileName);
}
public static void systemOutPrintln(String fileName) throws InterruptedException, IOException {
ReadFileInterface f = new ReadFileThread();
f.setFileName(fileName);
f.start();
f.join();
//add your code here - добавьте код тут
System.out.println(f.getFileContent());
}
public interface ReadFileInterface {
void setFileName(String fullFileName) throws IOException, InterruptedException;
String getFileContent() throws IOException, InterruptedException;
void join() throws InterruptedException;
void start();
}
public static class ReadFileThread extends Thread implements ReadFileInterface {
private String fullFileName;
private String str1 = "";
@Override
public void setFileName(String fullFileName){
this.fullFileName = fullFileName;
}
@Override
public String getFileContent() {
return str1;
}
@Override
public void run() {
try {
FileInputStream fstream = new FileInputStream(fullFileName);
BufferedReader reader1 = new BufferedReader(new InputStreamReader(fstream));
while (reader1.readLine() != null){
str1+= reader1.readLine() + " ";
}
fstream.close();
reader1.close();
System.out.println(str1);
}
catch (IOException e){
System.out.println(e);
}
}
}
//add your code here - добавьте код тут
}
Vitali Barysau
31 уровень
Помогите пожалуйста. Почему не работает?
Решен
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
kef
3 января 2020, 16:54
сколько строк читается за итерацию цикла?
попробуй выводить промежуточные, только что считанные строки
0
Vitali Barysau
3 января 2020, 17:39
![](https://cdn.javarush.com/images/comment/dd1e1aec-03ae-439d-b4a0-f6fb1951f020/64.jpeg)
0
kef
3 января 2020, 19:05
для теста попробуй файл с 10 строками :-)
0
kef
3 января 2020, 19:06
вот в этом цикле
while (reader1.readLine() != null){
str1+= reader1.readLine() + " ";
}
0
Vitali Barysau
3 января 2020, 19:32
Я в этом куске кода вывожу строки и все равно ошибка как на скрине выше
0
kef
3 января 2020, 19:34решение
хорошо, что выведет такая программа:
while (reader1.readLine() != null){
System.out.println(reader1.readLine());
}
из файла:
Строка1
Строка2
Строка3
Строка4
+2
Vitali Barysau
3 января 2020, 22:51
try {
FileInputStream fstream = new FileInputStream(fullFileName);
BufferedReader reader = new BufferedReader(new InputStreamReader(fstream));
String str2="";
while ((str2 = reader.readLine()) != null){
str1 += str2 + " ";
}
// System.out.print(str1);
fstream.close();
reader.close();
}
0
Vitali Barysau
3 января 2020, 22:52
Все спасибо ! Нашел ошибку.Добавил новую переменную str2 для хранения строки. Но вот не понимаю как эта новая переменная влияет получаемые на данные? Почему без этой переменной строка хранит null
0