Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Как из List загрузить в файл и обратно(Location)

Тема в разделе "Разработка плагинов для новичков", создана пользователем Rider3217, 1 июл 2015.

  1. Автор темы
    Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Как из List загрузить в файл локации и потом из файла вернуть локации в List?
     
  2. Хостинг MineCraft
    <
  3. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    В конфиг нужно сохранять только координаты или все значения до сотой доли?
     
  4. Автор темы
    Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    P.S. Мне вообще пофиг.
     
    Последнее редактирование: 1 июл 2015
  5. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Тогда нужно написать сериализер(не знаю как точно), т.е. ты пишешь функцию, которая преобразовывает нужные тебе значения в строку и пишешь функцию, которая парсит строку, извлекая значения.
     
  6. gamerforEA

    gamerforEA Старожил Пользователь

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Код:
    public static boolean writeLocation(double x, double y, double z, String worldName, File file)
    {
        FileOutputStream fileStream = null;
        DataOutputStream out = null;
    
        try
        {
            fileStream = new FileOutputStream(file);
            out = new DataOutputStream(fileStream);
            out.writeDouble(x);
            out.writeDouble(y);
            out.writeDouble(z);
            out.writeUTF(worldName);
        }
        catch (Throwable t)
        {
            return false;
        }
        finally
        {
            try
            {
                if (out != null) out.close();
                if (fileStream != null) fileStream.close();
            }
            catch (Throwable t)
            {
                return false;
            }
        }
    
        return true;
    }
    
    public static Object[] readLocation(File file)
    {
        FileInputStream fileStream = null;
        DataInputStream in = null;
    
        double x;
        double y;
        double z;
        String worldName;
    
        try
        {
            fileStream = new FileInputStream(file);
            in = new DataInputStream(fileStream);
            x = in.readDouble();
            y = in.readDouble();
            z = in.readDouble();
            worldName = in.readUTF();
        }
        catch (Throwable t)
        {
            x = Double.NaN;
            y = Double.NaN;
            z = Double.NaN;
            worldName = "UNKNOUN";
        }
        finally
        {
            try
            {
                if (in != null) in.close();
                if (fileStream != null) fileStream.close();
            }
            catch (Throwable t)
            {
                x = Double.NaN;
                y = Double.NaN;
                z = Double.NaN;
                worldName = "UNKNOUN";
            }
        }
    
        return new Object[] { x, y, z, worldName };
    }
     
  7. Автор темы
    Rider3217

    Rider3217 Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Planet0111
    Вот спасибо.
     
  8. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Как все громоздко.
     
  9. gamerforEA

    gamerforEA Старожил Пользователь

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Если не обрабатывать исключения, то будет компактно (хотя не очень, так как потоки нужно закрывать), но вероятность ошибки возрастёт.
     
  10. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    try with resources для кого придумали?
     
  11. gamerforEA

    gamerforEA Старожил Пользователь

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Не знал про неё, спасибо.
     

Поделиться этой страницей