Получается ошибка что не найдет метод get, с методом of все так же :
java: cannot find symbol
symbol: method get(java.lang.String)
location: interface java.nio.file.Path
В чем проблема? Обновить JDK? Как?
package com.javarush.task.pro.task15.task1504;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.Scanner;
/*
Перепутанные байты
*/
public class Solution {
public static void main(String[] args) {
//напишите тут ваш код
Scanner sc = new Scanner(System.in);
Path path1 = Path.get(sc.nextLine());
Path path2 = Path.get(sc.nextLine());
InputStream source = null;
OutputStream dest = null;
try {
source = Files.newInputStream(path1);
dest = Files.newOutputStream(path2);
byte[] array = new byte[2];
while (source.available()>0){
int count = source.read(array);
if (count==2){
byte b = array[0];
array[0] = array[1];
array[1] = b;
}
dest.write(array,0,count);
}
}
catch(Exception e){
System.out.println("Error file name");
}
finally {
sc.close();
if (source!=null){
source.close();
}
if (dest!=null){
dest.close();
}
}
}
}
Path
нет методаget()
. Но метод с таким именем есть в классеPaths
. А в интерфейсеPath
есть методof()
. Manuals: Paths.get() Path.of()Path.of()
статический... Даже более того, как сказано в документации, текущие версии методов классаPaths
просто вызывают методыPath.of()
с теми же аргументами. Наконец та же документация рекомендует в новом коде использовать именноPath.of()
, так как классPaths
может быть объявлен устаревшим в следующих версиях Жавы.