Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Файловый вывод, проблемы с кодировкой 
V
    Опции темы
Bulat
Дата 24.5.2006, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 4
Всего: 57



Есть код:

Код

...
OutputStream os = new FileOutputStream("log.txt");
...
os.write(rs.getInt("billing_id"));
...
os.close();


Или может проблема ограничивается не только в кодировке, потому как в файле отправляю только числа, а получаются каракули  

Это сообщение отредактировал(а) Bulat - 24.5.2006, 08:34


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Metal_Heart
Дата 24.5.2006, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 4
Всего: 12



привет, а ты не делал os.flush() после os.write() ? 


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
tux
Дата 24.5.2006, 08:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 31
Всего: 132



А если попробовать так?
Код

os.write(Integer.toString(rs.getInt("billing_id")));
 
PM MAIL Skype GTalk Jabber YIM   Вверх
Bulat
Дата 24.5.2006, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 4
Всего: 57



2Metal_Heart, 

Ничего не дало

2tux, 

так он вообще отказывается работать 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
batigoal
Дата 24.5.2006, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Это, видимо, из-за того, что ты пишешь не в текстовом режиме. Если надо в текстовом, делай так:
Код

...
FileWriter writer = new FileWriter ("log.txt");
...
writer.write(rs.getInt("billing_id"));
...
writer.close();


Добавлено @ 09:37 
Но, вообще-то, для записи логов есть специальные инструменты (например, log4j). Пользоваться ими несложно. 


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Bulat
Дата 24.5.2006, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 4
Всего: 57



2Lamer George, 

Так он выбрасывает:

Код

Exception in thread "main" java.lang.Error
    at sun.nio.cs.StreamEncoder$CharsetSE.flushLeftoverChar(StreamEncoder.java:361)
    at sun.nio.cs.StreamEncoder$CharsetSE.implWrite(StreamEncoder.java:381)
    at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:136)
    at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:124)
    at java.io.OutputStreamWriter.write(OutputStreamWriter.java:178)
    at Connect.getBillings_data(Connect.java:81)
    at Connect.getLogins_data(Connect.java:108)
    at Connect.run(Connect.java:45)
    at Connect.main(Connect.java:37)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:86)


Какие советы будут по этому поводу, или мне выложить код?  

Это сообщение отредактировал(а) Bulat - 24.5.2006, 15:00


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
batigoal
Дата 24.5.2006, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Выложи код. И проверь, корректно ли у тебя извлекается rs.getInt("billing_id").  

Это сообщение отредактировал(а) Lamer George - 24.5.2006, 15:44


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Bulat
Дата 25.5.2006, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 4
Всего: 57



Этот вопрос я дожал, пока до необходимого уровня. Только у меня возник другой, вобще возможно через коды ява создать файл, который потом можно было бы удалить только таким же способом через коды. Проще говоря, чтоб кто-попало не смог с этим файлом сотворить что ему вздумается 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
batigoal
Дата 25.5.2006, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Цитата(Bulat @  25.5.2006,  10:57 Найти цитируемый пост)
Этот вопрос я дожал, пока до необходимого уровня. Только у меня возник другой, вобще возможно через коды ява создать файл, который потом можно было бы удалить только таким же способом через коды. Проще говоря, чтоб кто-попало не смог с этим файлом сотворить что ему вздумается 

Это скорее вопрос к файловой системе. Например, в *NIX-системе ты мог бы создать пользователя, и запретить действия с файлом всем остальным. В винде это тоже возможно.

Но программными средствами ты этого добиться навряд ли сможешь. 


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
LSD
Дата 25.5.2006, 10:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(Bulat @  25.5.2006,  10:57 Найти цитируемый пост)
Только у меня возник другой, вобще возможно через коды ява создать файл, который потом можно было бы удалить только таким же способом через коды. Проще говоря, чтоб кто-попало не смог с этим файлом сотворить что ему вздумается

А можно по русски? 


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Bulat
Дата 25.5.2006, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 4
Всего: 57



2LSD,  вапчет Lamer George понял суть моего вопроса и ответил на него. Я в принципе и сам так предпологал, но надежда умирает последней. 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Beard
Дата 25.5.2006, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.7.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 9



Цитата

Только у меня возник другой, вобще возможно через коды ява создать файл, который потом можно было бы удалить только таким же способом через коды. Проще говоря, чтоб кто-попало не смог с этим файлом сотворить что ему вздумается

Посмотри здесь
может это и надо? 
PM MAIL   Вверх
LSD
Дата 28.5.2006, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(Bulat @  25.5.2006,  12:08 Найти цитируемый пост)
2LSD,  вапчет Lamer George понял суть моего вопроса и ответил на него. Я в принципе и сам так предпологал, но надежда умирает последней.

Ну не то чтобы это совсем нельзя было сделать, изменить настройки безопасности файловой системы из Java можно через Runtime.exec(). В виндах это можно сделать с помощью cacls. 


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Bulat
Дата 29.5.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 4
Всего: 57



Цитата(Beard @ 25.5.2006,  16:42)
Цитата

Только у меня возник другой, вобще возможно через коды ява создать файл, который потом можно было бы удалить только таким же способом через коды. Проще говоря, чтоб кто-попало не смог с этим файлом сотворить что ему вздумается

Посмотри здесь
может это и надо?

М-дя, мало того, что простым Del смог удалить свой файл, я даже изменил его содержимое. Что там делается lock я не понял........ smile  


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Beard
Дата 29.5.2006, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.7.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 9



А можно на твой тестовый пример посмотреть?
Лично у меня под виндой все нормально лочится - удалить или изменить не могу 
PM MAIL   Вверх
Beard
Дата 29.5.2006, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.7.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 9



Попробуй для проверки запустить вот это:
Код

import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.channels.FileChannel;
import java.nio.channels.FileLock;

public class Locking {
    public static void main(String args[]) throws IOException {
        if (args.length == 0)
            System.out.println("Use \"java Locking filename\"");
        else {
            FileChannel channel = new RandomAccessFile(args[0], "rw").getChannel();
            FileLock lock = channel.lock();//or channel.tryLock(); lock() return FileLock
            try {
                System.out.println("GOT LOCK");
                System.out.println("Now you can try edit or delete file \"" + args[0] + "\"");
                System.out.println("Press ENTER to continue");
                System.in.read(new byte[10]);
            } finally {
                System.out.println("RELEASED LOCK");
                lock.release();
                channel.close();
            }
            System.out.println("OK");
        }
    }
}

Цитата(Bulat @  29.5.2006,  14:04 Найти цитируемый пост)
Что там делается lock я не понял........ 

Вот что написано в Thinking in Java 3 Edition:
Цитата

File locking, introduced in JDK 1.4, allows you to synchronize access to a file as a shared resource. However, the two threads that contend for the same file may be in different JVMs, or one may be a Java thread and the other some native thread in the operating system. The file locks are visible to other operating system processes because Java file locking maps directly to the native operating system locking facility. 

... skipped ...

You get a FileLock on the entire file by calling either tryLock( ) or lock( ) on a FileChannel. (SocketChannel, DatagramChannel, and ServerSocketChannel do not need locking since they are inherently single-process entities; you don’t generally share a network socket between two processes.) tryLock( ) is non-blocking. It tries to grab the lock, but if it cannot (when some other process already holds the same lock and it is not shared), it simply returns from the method call. lock( ) blocks until the lock is acquired, or the thread that invoked lock( ) is interrupted, or the channel on which the lock( ) method is called is closed. A lock is released using FileLock.release( ). 

It is also possible to lock a part of the file by using

    tryLock(long position, long size, boolean shared)
or
    lock(long position, long size, boolean shared)

which locks the region (size - position). The third argument specifies whether this lock is shared. Feedback

Although the zero-argument locking methods adapt to changes in the size of a file, locks with a fixed size do not change if the file size changes. If a lock is acquired for a region from position to position+size and the file increases beyond position+size, then the section beyond position+size is not locked. The zero-argument locking methods lock the entire file, even if it grows. Feedback

Support for exclusive or shared locks must be provided by the underlying operating system. If the operating system does not support shared locks and a request is made for one, an exclusive lock is used instead. The type of lock (shared or exclusive) can be queried using FileLock.isShared( )


 
PM MAIL   Вверх
Bulat
Дата 30.5.2006, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


татарский Нео
***


Профиль
Группа: Завсегдатай
Сообщений: 1701
Регистрация: 22.3.2006
Где: Альметьевск

Репутация: 4
Всего: 57



Beard, 

А собственно это что проверяет? Написал, запустил, сработал у меня if, что и так видно потому как args.length == 0 - true 


--------------------
менеджер по кодеврайтингу  smile 
PM MAIL WWW   Вверх
Beard
Дата 30.5.2006, 11:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 228
Регистрация: 5.7.2005
Где: Санкт-Петербург

Репутация: 2
Всего: 9



Так в качестве аргумента надо передать путь до файла, который надо залочить, "что и так видно":
Код

java Locking filepath
 
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0726 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.