Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Хранение xml-документа в java / 4 сообщений из 4, страница 1 из 1
24.06.2005, 17:50
    #33134162
Winder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение xml-документа в java
Кто-нибудь скажет, как можно сохранить xml-докумет(в какой-нибудь переменной, если размер его 4 kb и выше)в java?
...
Рейтинг: 0 / 0
24.06.2005, 18:12
    #33134224
fedd
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение xml-документа в java
в объекте String
...
Рейтинг: 0 / 0
24.06.2005, 18:44
    #33134264
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение xml-документа в java
файл на диске + плюс доступ к нему используя поток

Например так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
 import  java.io.File;
 import  java.io.FileInputStream;
 import  java.io.FileNotFoundException;
 import  java.io.FileOutputStream;
 import  java.io.IOException;
 import  java.io.InputStream;
 import  java.io.OutputStream;
 import  java.io.UnsupportedEncodingException;
 import  java.nio.channels.FileLock;
 import  java.util.Arrays;
 import  java.util.Date;

 import  org.apache.commons.io.CopyUtils;
 import  org.apache.commons.io.IOUtils;
 import  org.apache.log4j.Logger;

 public   class  TransitData  implements  Cloneable {

    
	/**
	 * <p>TransitData использует для хранения данных временные файлы.
	 * Данный атрибут хранит ссылку на такой файл, который используется только
	 * внутри класса. 
	 */
	 private  File intFile;  private  FileLock fileLock;
	
	/**
	 * <p>(Factory Method) Фабрика для создания <b>TransitData</b> по </p>
	 */
	 public   static  TransitData createFrom???(???) {
                         transitData =  new  TransitData();

		File tmpFile = File.createTempFile("data", ".xml"); FileLock fileLock;
		// здесь записываем данные в файл

		transitData.intFile = tmpFile;
		transitData.fileLock = fileLock; 

		 return  transitData;
	}

	/** 
	 * @see java.lang.Object#clone()
	 */
	 public  Object clone()  throws  CloneNotSupportedException {
		TransitData clone = (TransitData)  super .clone();
		
         try  {
            clone.fileLock =  new  FileInputStream( this .intFile).getChannel().lock(0L, Long .MAX_VALUE,true);
        }  catch  (Exception e) {
             throw   new  RuntimeException("не удалось скопировать объект", e);
        }
		
		 return  clone;
	}

	 public  InputStream getDataStream() {
	     if  (isDisposed)
	         throw   new  IllegalStateException("data not available cas object is disposed");
	     try  {
             return   new  FileInputStream(intFile);
        }  catch  (FileNotFoundException e) {
            RuntimeException re =  new  IllegalStateException("internal file not found");
            re.initCause(e);
             throw  re;
        }
	 private   boolean  isDisposed = false;
    /**
     * @throws Exception
     */
     public   void  dispose()  throws  Exception {
         if  (isDisposed)
             throw   new  IllegalStateException("object's already disposed");

        if (intFile != null)
            try {
                fileLock.channel().close(); //release();
                intFile.delete();
                Logger.getLogger(TransitData.class).debug("disposed, file "+intFile.getName()+" deleted");
            } catch (Exception e) {
                Logger.getLogger(TransitData.class).debug(e);
            }

        intFile = null;
        isDisposed = true;
    }

    protected void finalize() throws Throwable {
        super.finalize();

        if (!isDisposed)
        {
            Logger.getLogger(TransitData.class).debug("object isn't disposed");
            dispose();
        }
        
    }
	
}


Вместо factory-method можно использовать обычный коструктор с параметрами
...
Рейтинг: 0 / 0
27.06.2005, 15:02
    #33136492
Winder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хранение xml-документа в java
Круто, пригодится, то, что надо! А насчет объекта String -это понятно.Сейчас на самом деле проблема с кодировкой xml. Точнее при попытке вставить его(док-т) в XMLType (Oracle9i R.1) руг-ся на символ "я". Можно, конечно, сменить кодировку на другую, но при извлечении из oracle этого документа содержимого отличается от исходного. В oracle (charset:CL8MSWIN1251), в xml windows-1251(жестко устан-ся). Сменить код-ку базы нельзя. Другой вопрос: А хранить ли его в этом типе(XMLType)?
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Хранение xml-документа в java / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]