Может быть, наведёт на мысль:
import java.io.*;
public class PortableFile implements Serializable
{
private byte[] content;
String name;
public PortableFile( File file ) throws FileNotFoundException
{
this.name = file.getName();
this.content = new byte[ ( int )file.length() ];
try
{
FileInputStream fileInputStream = new FileInputStream( file );
fileInputStream.read( this.content, 0, ( int )file.length() );
fileInputStream.close();
}
catch( IOException e )
{
//
System.out.println( "IOException: " + e );
//
System.exit( 0 );
}
}
public String getName()
{
return this.name;
}
public int getLength()
{
return this.content.length;
}
public byte[] getBytes()
{
return this.content;
}
}
Здесь, надеюсь, всё очень просто.

... << RSDN@Home 1.0 beta 7a >>
У меня возникла следующая проблема. Есть система, в которой клиент и сервер общаются посредством RMI. Клиентское приложение предоставляет возможность пользователю выбрать файл на своем компьютере (это будет картинка — bmp, gif или jpg), затем оно должно отправить этот файл на сервер.
Возникла идея создать у одного из классов сервера метод getFile(FileInputStream in).
Тогда клиент после выбора пользователем файла создавал бы соответствующий FileInputStream и вызывал бы через RMI метод getFile.
Эта идея не работает. При вызове удаленного метода возникает NotSerializableException, так как FileInputStream не реализует интерфейс Serializable.
Существует ли класс, поддерживающий интерфейс Serializable, в который можно было бы поместить файл?
И вообще, как лучше передать файл по сети (желательно с использованием RMI)?
Заранее благодарна.
Здравствуйте, vera_zv, Вы писали:
VZ>При вызове удаленного метода возникает NotSerializableException, так как FileInputStream не реализует интерфейс Serializable.Существует ли класс, поддерживающий интерфейс Serializable, в который можно было бы поместить файл?
VZ>И вообще, как лучше передать файл по сети (желательно с использованием RMI)?
VZ>Заранее благодарна.
Для передачи объектов нужно, что бы классы этих объектов реализовывали интерфейс Serializable. Попробуйте создать свой класс и имплементировать интерфейс Serializable (если я не ошибаюсь, никаких методов реализовывать не нужно).
... << RSDN@Home 1.0 beta 4 >>