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

Например так

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


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