1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Guardar Ficheiro em Java

Discussão em 'Programação' iniciada por The Dealer, 10 de Maio de 2009. (Respostas: 2; Visualizações: 1135)

  1. The Dealer

    The Dealer Power Member

    Estou a fazer uma mini aplicação cliente servidor com sockets em Java (TCP).

    Queria que quando um cliente insere um produto, que tenha uma opção para enviar uma fotografia do mesmo para o servidor (por sua vez quando outro cliente estiver a visualizar pode ou não fazer o download da fotografia).

    Será que alguem me podia ajudar?
     
  2. h4des

    h4des Power Member

    http://www.rgagnon.com/javadetails/java-0542.html

    Basicamente no cliente abres o ficheiro para leitura, passas todos os bytes para um array e envias esse array para o servidor através das sockets. Depois no lado do servidor recebes o array e gravas num ficheiro novo.
     
  3. napalm

    napalm Power Member

    Algo por onde começares:

    Corre primeiro o FileReceiver e depois o FileSender.
    test.txt é o ficheiro de entrada, out.txt é a cópia.

    FileReceiver:
    Código:
    import java.io.ByteArrayOutputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    
    public class FileReceiver {
    
        /**
         * @param args
         * @throws IOException 
         */
        public static void main(String[] args) throws IOException {
            
            ServerSocket listener = new ServerSocket(12345);
            Socket s = listener.accept();
            InputStream is = s.getInputStream();
            ByteArrayOutputStream byteArray = new ByteArrayOutputStream();
            byte b;
            
            while((b =(byte) is.read()) != -1) {
                byteArray.write(b);
            }
            new FileOutputStream("out.txt").write(byteArray.toByteArray());
        }
    
    }
    
    FileSender:
    Código:
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.OutputStream;
    import java.net.Socket;
    import java.net.UnknownHostException;
    
    public class FileSender {
    
        /**
         * @param args
         * @throws IOException 
         * @throws UnknownHostException 
         */
        public static void main(String[] args) throws UnknownHostException, IOException {
            Socket socket = new Socket("localhost", 12345);
            OutputStream os = socket.getOutputStream();
            
            FileInputStream fis = new FileInputStream(new File("test.txt"));
            int i;
            while(true) {
                i = fis.read();
                os.write(i);
                if(i == -1) {
                    break;
                }
            }
        }
    }
     
     
    Última edição: 10 de Maio de 2009

Partilhar esta Página