1. Java / Говнокод #28592

    −2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    import java.io.IOException;
    import java.nio.file.Path;
    import java.nio.file.Paths;
    import java.util.Scanner;
    import java.util.zip.*;
    import java.io.*;
     
    public class CitiesPrinter {
     
        public static void main(String[] args) throws IOException {
           
            final String fileName = "/storage/emulated/0/Documents/Jvdroid/single-files/_данные_Сбер_Java_20210407090226.zip";
            try(ZipInputStream unzipping = new ZipInputStream(new FileInputStream(fileName)));
           {
             ZipEntry entry = null;
            String name = null;
            long size = 0;
            
            while((entry=unzipping.getNextEntry())!= null) {
            name = entry.getName();
            size = entry.getSize();
            System.out.println("FileName: " + name + "FileSize: " + size);
            FileOutputStream unzippedFile = new FileOutputStream("/storage/emulated/0/Documents/Jvdroid/single-files/new" + name);
                    for (int c = unzipping.read(); c != -1; c = unzipping.read()) {
                        unzippedFile.write(c);
                    }
                    unzippedFile.flush();
                    unzipping.closeEntry();
                    unzippedFile.close();
            }
           }
           catch(Exception e){
            System.out.println(e.getMessage());
           }
            
            Path path = Paths.get(fileName);
            Scanner scanner = new Scanner(path);
             
            
            scanner.useDelimiter(System.getProperty("line.separator"));
            while(scanner.hasNext()){
                System.out.println("Строка: " + scanner.next());
            }
            scanner.close();
            
            scanner = new Scanner(Paths.get("/storage/emulated/0/Documents/Jvdroid/single-files/_данные_Сбер_Java_20210407090226.zip/city_ru.csv"));
            scanner.useDelimiter(System.getProperty("line.separator"));
            while(scanner.hasNext()){
                
                Employee emp = parseCSVLine(scanner.next());
                System.out.println(emp.toString());
            }
            scanner.close();
             
            
            scanner = new Scanner(System.in);
            System.out.println("Вводим первое слово: " + scanner.next());
        }
    
         
        private static Employee parseCSVLine(String line) {
             Scanner scanner = new Scanner(line);
             scanner.useDelimiter("\\s*,\\s*");
             String name = scanner.next();
             int age = scanner.nextInt();
             String gender = scanner.next();
             CitiesPrinter jfs = new CitiesPrinter();
             return jfs.new Employee(name, age, gender);
        }
    }
     
        class Employee{
            private String name;
            private int age;
            private String gender;
             
            public Employee(String n, int a, String gen){
                this.name = n;
                this.age = a;
                this.gender = gen;
            }
             
            @Override
            public String toString(){
                return "Name=" + this.name + "::Age=" + this.age + "::Gender=" + this.gender;
            }
        }

    Что не так?

    Запостил: sbnet, 09 Февраля 2023

    Комментарии (22) RSS

    • В самом деле: где здесь C++?))
      Раздел Java, все правильно.
      Ответить
    • > Что не так?

      для рекорды-то блядь завезли

      > return jfs.new Employee(name, age, gender);

      как сообщить аудитории, что ты даже не пробовал компилировать
      Ответить
      • Jawa не компилируется, а транспилируется в байт-код OpenJDK, который уже и выполняется ею.
        Ответить
        • Жава компилируется под виртуальную машину JVM. Кмк, трансляция это обычно более поверхностная операция (к примеру, мнемоники асемблера транслируются в соответствующие им опкоды).

          В случае JVM же мы видим превращение довольно высокоуровневого ЯПа в опкоды стековой виртуалки (хотя тоже конечно соврешенно искуственной)

          С другой стороны, файл ".c" в компиляторе называется единицей трансляции, хуй знает почему.

          А выполняет код JVM, а то и вовсе он транслируется в коды под ART (в случае ондроида)
          Ответить
          • > JVM

            OpenJDK*
            Ответить
            • OpenJDK это опенсурс реализация JVM и SDK для нее же
              Ответить
          • Трансляция — это общий термин для компиляции, транспиляции, интерпретации. В общем, это любое преобразование кода.

            В Андроиде всё хуже: код под виртуальный стековый процессор JVM нужно пропустить через транслятор dx или d8 (последний умеет дешугарить некоторые конструкции из Java 8+), чтобы получить dex-файл, содержащий байткоды для виртуального регистрового процессора Dalvik.

            Потом этот dex либо исполняется машиной Dalvik, либо транслируется в нативный код на самом устройстве консольной программой dex2oat, чтобы его потом исполнила виртуальная машина ART (ART в данном случае выступает не в роли интерпретатора, потому что код нативный, а в роли диспетчера, отыскивая нужные куски кода и скармливая их процессору, такой вот линкер в реальном времени).

            У dex2oat несколько режимов. В режиме по умолчанию в нативный код транслируется не весь код, а только «горячие» участки, остальной же код интерпретируется как код для Dalvik (да, у ART оставили интерпретатор Dalvik). В пятом Андроиде пытались транслировать сразу весь код — это быстро приводило к засиранию карты памяти.
            Ответить
      • Это не то. Это я просто не успел поправить. Я в верхней части кода не могу сделать распаковку архива.
        Ответить
      • а под ведровед они уже есть?
        Ответить
    • > System.out.println("Вводим первое слово: "

      > System.out.println("FileName: " + name + "FileSize: "

      Какой biлингv )))
      Ответить
    • Такая джава шесть, и 2007-й год, в общем
      Ответить

    Добавить комментарий