Здравствуйте! Возникла следующая проблема: BufferedReader br = new BufferedReader(new FileReader(fileName)); не хочет читать данные из файла.
public class Solution {
public static void main(String[] args) throws FileNotFoundException, IOException{
//BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
String fileName = "C:/sc1.txt";
String[] arg = {"-u", "198478", "Test", "1450", "125"};
if(arg.length > 0 && arg[0].equals("-u")){
BufferedReader br = new BufferedReader(new FileReader(fileName));
BufferedWriter bw = new BufferedWriter(new FileWriter(fileName));
ArrayList<String> list = new ArrayList();
String id = arg[1];
String productName = arg[2];
String price = arg[3];
String quantity = arg[4];
while(br.ready()){ // <-- доходит до цикла и перескакивает его, т.е. файл пуст, но по факту он содержит иформацию
String s = br.readLine();
if(s.contains(id)){
list.add(correctLength(id, 8) + correctLength(productName, 30) +
correctLength(price, 8) + correctLength(quantity, 4));
}
else list.add(s);
}
for(String st: list)
bw.write(st);
}
}
public static String correctLength(String s, int n){
while(s.length() < n)
s += " ";
return s;
}
}
Содержание файла sc1.txt:
19846 Шорты пляжные синие 159.00 12
198478 Шорты пляжные черные с рисунко173.00 17
19847983Куртка для сноубордистов, разм10173.991234
Я так же пробовал через FileInputStream. Та же проблема ( fis.available() = 0)
В качестве проверки new BufferedReader(new FileReader(fileName)) написал маленькую программку:
public class Solution {
public static void main(String[] args) throws FileNotFoundException, IOException{
String fileName1 = "C:/sc1.txt";
String fileName2 = "C:/sc2.txt";
BufferedReader br = new BufferedReader(new FileReader(fileName1));
BufferedWriter bw = new BufferedWriter(new FileWriter(fileName2));
while(br.ready()){
String s = br.readLine();
System.out.println(s);
bw.write(s);
}
}
}
В этом случае файл читается и выводится в консоль, НО не записывается во второй файл.
Объясните мне, пожалуйста, почему так происходит, ведь до этого (в других задачах) все работало. Искал в интернете ответ на этот вопрос, но по логике тех примеров, что я находил, все должно работать. Заранее благодарю!