- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 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
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.02.2023 04:43 # −3
Раздел Java, все правильно.
inkanus_gray 09.02.2023 20:22 # +2
Fike 09.02.2023 05:35 # 0
для рекорды-то блядь завезли
> return jfs.new Employee(name, age, gender);
как сообщить аудитории, что ты даже не пробовал компилировать
JloJle4Ka 09.02.2023 06:09 # 0
guest6 09.02.2023 16:46 # +2
В случае JVM же мы видим превращение довольно высокоуровневого ЯПа в опкоды стековой виртуалки (хотя тоже конечно соврешенно искуственной)
С другой стороны, файл ".c" в компиляторе называется единицей трансляции, хуй знает почему.
А выполняет код JVM, а то и вовсе он транслируется в коды под ART (в случае ондроида)
JloJle4Ka 09.02.2023 16:53 # 0
OpenJDK*
guest6 09.02.2023 16:55 # +3
HoBorogHuu_nemyx 09.02.2023 17:19 # +2
В Андроиде всё хуже: код под виртуальный стековый процессор JVM нужно пропустить через транслятор dx или d8 (последний умеет дешугарить некоторые конструкции из Java 8+), чтобы получить dex-файл, содержащий байткоды для виртуального регистрового процессора Dalvik.
Потом этот dex либо исполняется машиной Dalvik, либо транслируется в нативный код на самом устройстве консольной программой dex2oat, чтобы его потом исполнила виртуальная машина ART (ART в данном случае выступает не в роли интерпретатора, потому что код нативный, а в роли диспетчера, отыскивая нужные куски кода и скармливая их процессору, такой вот линкер в реальном времени).
У dex2oat несколько режимов. В режиме по умолчанию в нативный код транслируется не весь код, а только «горячие» участки, остальной же код интерпретируется как код для Dalvik (да, у ART оставили интерпретатор Dalvik). В пятом Андроиде пытались транслировать сразу весь код — это быстро приводило к засиранию карты памяти.
sbnet 09.02.2023 06:56 # −1
HoBorogHuu_nemyx 09.02.2023 11:54 # 0
guest6 09.02.2023 16:41 # 0
JloJle4Ka 09.02.2023 06:49 # +1
> System.out.println("FileName: " + name + "FileSize: "
Какой biлингv )))
sbnet 09.02.2023 06:54 # −1
JloJle4Ka 09.02.2023 06:59 # +1
sbnet 09.02.2023 08:22 # −1
JloJle4Ka 09.02.2023 11:59 # +2
guest6 09.02.2023 16:47 # −3
JloJle4Ka 09.02.2023 16:52 # −1
JloJle4Ka 09.02.2023 17:12 # −1
TAPAC 10.02.2023 22:13 # 0
HoBorogHuu_nemyx 09.02.2023 11:52 # −1
guest6 09.02.2023 17:02 # −1