Jawa / Говнокод #28592 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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 sbnet, (Updated )

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

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

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

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

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

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

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

        А выполняет код JVM, а то и вовсе он транслируется в коды под ART (в случае ондроида)
        Ответить
          • 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-й год, в общем
    Ответить

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

Переведи на "PHP", guest!

    А не использовать ли нам bbcode?


    8