网上看到一个文件传输的代码,下载下来后运行importjava.io.*;importjava.net.*;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjavax.swing.border.*;//Forthe...
网上看到一个文件传输的代码,下载下来后运行
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;// For the border classes
public class UServer extends JFrame implements ActionListener{
private JButton save = new JButton("保存文件");
private DatagramPacket dp;
private DatagramSocket ds;
private FileOutputStream fos ;
private FileInputStream fis;
private String filename;
private byte[] buf = new byte[10240];
public UServer(){
this.setSize(150,100);
this.setTitle("接收文件");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
this.add(save);
save.addActionListener(this);
this.setVisible(true);
}
public void start(){
try {
ds = new DatagramSocket(4567);
fos = new FileOutputStream("c:\\temp.dat");
while(true){
dp = new DatagramPacket(buf,buf.length);
ds.receive(dp);
fos.write(dp.getData());
fos.flush();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
new UServer().start();
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == save){
JFileChooser jfc = new JFileChooser();
jfc.showSaveDialog(this);
filename = jfc.getSelectedFile().getPath();
try {
fos.close();
fos = new FileOutputStream(filename);
fis = new FileInputStream("c:\\temp.dat");
int c;
while((c=fis.read(buf))!=-1){
fos.write(buf);
fos.flush();
}
fos.close();
fis.close();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
}
错误如下:
java.io.IOException: Write error
at java.io.FileOutputStream.writeBytes(Native Method)
at java.io.FileOutputStream.write(Unknown Source)
at UServer.start(UServer.java:32)
at UServer.main(UServer.java:40)
请问这是为什么。。。
展开