我做了个局域网传文件的小软件,但是不知道该怎么把文件保存为原来的格式,请教各位拉,帮帮我,我用JFileChooser操作的。

解决方案 »

  1.   

    我现在保存后的文件是不能直接打开的   是要选择原来那程序方式才能打开 比如传WORD文本 那接后 要选打开方式选WORD 才行  怎么回事啊 文本内容是正确的代码是这样的:import java.net.*;
    import java.io.*;
    import tt.IPAddressEditor;
    import javax.swing.JFileChooser;
    public class getfile extends Thread{
     
    String fileName; 
    private static int port=3567;public static IPAddressEditor ip_input;
    public static InputStream in;
    private static Socket socket;
    private static RandomAccessFile file2=null;
    public getfile(){
    Chat.addmessg("开始连接服务器");
    try{
    socket = new Socket(InetAddress.getByName("127.0.0.1"),port);

    }catch(Exception e){
    e.toString();
    }
    Chat.addmessg("已经连接上服务器");
    }
    private void init_Stream()
    {
    Chat.addmessg("初始化流\n");
    try{
    in= new DataInputStream(
    new BufferedInputStream
    (socket.getInputStream()));
    }catch(Exception e){}
    Chat.addmessg("初始化流完成!\n");
    }
    public  boolean get_file(){

    JFileChooser fc = new JFileChooser(); 
    int result = fc.showSaveDialog(null); 

    File file1=fc.getSelectedFile();
    String fileName = file1.getAbsolutePath(); if(file1!=null&&result==fc.APPROVE_OPTION){
    try{
     file2=new RandomAccessFile(file1,"rw");
    }catch(Exception e4){}
    }

    else if(result==fc.APPROVE_OPTION){}
    if(file2!=null){
    Chat.addmessg(fileName);
    return true;
    }else return false;
    }
    public  void run(){
     byte[] buf=new byte[1024];
    if(socket!=null)
    {
     init_Stream();

     try{

     int num;
     Chat.addmessg("开始接受!\n");
     while(true) 
     {//是否读完所有数据 
     
    num=in.read(buf); 
    if(num==(-1))break;
    if(num<1024)
     file2.write(buf,0,num);//将数据写往文件 
    else
    file2.write(buf);
    file2.skipBytes(num);//顺序写文件字节 

     } 
     Chat.addmessg("接受数据结束!\n");
     in.close(); 
     file2.close();
    }catch(Exception e3){

    e3.toString();
    }
    finally{try{
    file2.close();
     socket.close();
     }catch(Exception ee){} }
    }


    }
    public  static void main(String args[])
    {  
    new getfile();
    }}
      

  2.   

    JFileChooser这组件没用过,不过这组件应该有方法获得上传文件的后缀吧,没有就获得完整文件名然后你自己
    再把后缀取出来,传的时候把后缀和文件名都传过去,那边保存的时候把后缀加上不就结了,呵呵
      

  3.   

    FileChooser仅是获得文件名,你要注意扩展名。
    如果可以得到文件我想就不是这个的问题了。建议你用字节流读取。