Ваш код смешивает чтение и запись - у вас одновременно открываются и объекты чтения, и объекты записи.Поскольку вы используете BufferedOutputStream
, вывод не записывается непосредственно в файл (когда буфер не заполнен), и вы читаете файл, прежде чем он содержит какие-либо данные.
Таким образом, чтобы решить эту проблему, очистите выходной поток с fout.flush();
перед чтением или идеально отделите чтение от записи:
import java.io.*;
class Fileoutput {
public static void main(String args[]) throws IOException {
File f = new File("test.txt");
f.createNewFile();
try (FileOutputStream fouts = new FileOutputStream(f); BufferedOutputStream fout = new BufferedOutputStream(fouts);) {
String s1 = "Good Afternoon have a nice day frghunv9uhbzsmk zvidzknmbnuf ofbdbmkxm;jccipx nc xdibnbnokcm knui9xkbmkl bv";
int length = s1.length();
System.out.println(length);
fout.write(length);
//fout.flush(); //optional, everything is flushed when fout is closed
System.out.println("Sucess");
}
try (FileInputStream fins = new FileInputStream(f); BufferedInputStream fin = new BufferedInputStream(fins);) {
int i;
while ((i = fin.read()) != -1) {
System.out.print((char) i);
}
System.out.println("All done");
}
}
}