Как я могу добавить к существующему java.io. ObjectStream? [дубликат]

10
задан starcorn 15 March 2012 в 23:55
поделиться

2 ответа

На самом деле это довольно легко сделать. Когда вы добавляете в существующий поток, вам необходимо использовать подкласс ObjectStream, который переоценивает WriteSteStreamHeader , чтобы второй заголовок не написан в середине файла. Например

class NoHeaderObjectOutputStream extends ObjectOutputStream {
  public NoHeaderObjectOutputStream(OutputStream os) {
    super(os);
  }
  protected void writeStreamHeader() {}
}

просто используйте стандартную objectInputtream, чтобы прочитать весь файл.

5
ответ дан 4 December 2019 в 00:24
поделиться

Я бы предложил что-то вроде:

$text =~ m{(.*)$find(.*)};
$text = $1 . $replace . $2;

Он вполне читаем и кажется безопасным. Если требуется многократная замена, легко:

while ($text =~ m{(.*)$find(.*)}){
     $text = $1 . $replace . $2;
}
-121--1128060-

Для просмотра всех доступных идентификаторов можно задать часовой пояс по умолчанию

    import java.util.TimeZone;
...        
    TimeZone.setDefault(TimeZone.getTimeZone("UTC"));  // or "Etc/GMT-1"

    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss dd/MM/yyyy", Locale.US);
    long start = sdf.parse("10:30:00 30/09/2009").getTime();
    long end = sdf.parse("10:30:00 30/10/2009").getTime();

    Calendar c = Calendar.getInstance(Locale.US);
    c.setTimeInMillis(start);
    System.out.println("Start = " + c.getTime());
    c.setTimeInMillis(end);
    System.out.println("  End = " + c.getTime());

с помощью TimeZone.getAvailureID () .

EDIT : можно также использовать новый SimpleTimeZone

    TimeZone.setDefault(new SimpleTimeZone(60 * 60 * 1000, "CET"));
-121--3866383-

Необходимо создать новый ObjectInputStream для каждого ObjectOutputStream . Я не знаю пути для переноса состояния из полного ObjectInputStream в ObjectOutputStream (без полной повторной реализации, что в любом случае немного сложно в чистом Java).

0
ответ дан 4 December 2019 в 00:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: