【发布时间】:2014-06-06 13:37:47
【问题描述】:
我正在写入一个文本文件,第一次是 FileOutputStream,第二次是通过 FileWriter。
FileOutputStream 似乎可以正常写入文本文件。但是,FileWriter 没有。 FileWriter 执行后,文件的内容消失了,但它并没有被 FileWriter 应该写入的内容所取代。以下是我的代码:
try {
serverSocket = new ServerSocket(850);
if(!serverSocket.isBound())
System.out.println("Sever Socket not Bounded...");
else
System.out.println("Server Socket bounded to Port : "+serverSocket.getLocalPort());
clientSocket = serverSocket.accept();
if(!clientSocket.isConnected())
System.out.println("Client Socket not Connected...");
else
System.out.println("Client Socket Connected : "+clientSocket.getInetAddress());
InputStream in = clientSocket.getInputStream();
int byteRead = 0;
byte[] byteArray = new byte[1024];
//Write the action in a file
actionFile = new File("C:\\Users\\Khoury\\Documents\\MATLAB\\FYP.txt");
FileOutputStream fos = new FileOutputStream(actionFile);
BufferedOutputStream bos = new BufferedOutputStream(fos);
while((byteRead = in.read(byteArray, 0, byteArray.length))> 0){
bos.write(byteArray, 0, byteRead);
}
serverSocket.close();
clientSocket.close();
in.close();
bos.close();
fos.close();
Scanner scan = new Scanner(actionFile);
actionChar = scan.next().charAt(0);
if(actionChar == '1' || actionChar == '2'){
FileWriter fw = new FileWriter(actionFile);
BufferedWriter bw2 = new BufferedWriter(fw);
PrintWriter pw2 = new PrintWriter(bw2);
pw2.write('r');
}
System.out.println("Action here: " + actionChar);
}catch (IOException e) {
e.printStackTrace();
}
【问题讨论】:
-
您还没有刷新或关闭您的第二批编写器...提示,将来,删除所有冗余套接字代码并替换为
ByteArrayInputStream之类的东西,以便我们可以轻松重现。
标签: java file sockets fileoutputstream