Что я делаю
Я пытаюсь создать приложение java.net, где клиент и сервер должны отправлять данные друг другу через сериализованные типы коллекций как byte[]
.
* 1005.* Что я пытаюсь сделать
По неизвестной причине мой DataInputStream не может разрешить метод readAllBytes()
.
Друг бросил его в свою IDE, и он не жаловался.Я не уверен, как это могло быть проблемой версии, но я проверил, и я не неправильно настроил свой проект.Я использую Java 8.
public void startClient() {
try {
Socket client = new Socket("localhost", 7000);
DataOutputStream out = new DataOutputStream(client.getOutputStream());
out.writeUTF("Hi i'm " + client.getLocalSocketAddress());
DataInputStream input = new DataInputStream(client.getInputStream());
byte[] sent = input.readAllBytes(); //"can't resolve method 'readAllBytes()'
getDataFromClient(input.readAllByes());
//"can't resolve method 'readAllBytes()'
client.close();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
![enter image description here](https://i.stack.imgur.com/XLRKr.png)
На самом деле я уверен, что этот метод должен поддерживаться, но я не могу понять, почемуэто не так Он указан как метод, унаследованный от Input Stream в Документах Oracles .
Это также проект Gradle, и для полноты, это build.gradle:
plugins {
id 'java'
id 'application'
}
sourceSets {
main {
resources {
srcDirs = ["src/main/java"]
includes = ["**/*.fxml","**/*.png"]
}
}
}
group 'prog3'
version '0.1'
mainClassName='Client'
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1'
testCompile group: 'org.mockito', name: 'mockito-core', version: '2.1.0'
}
Редактировать: Получается согласно ответам, Java 8 было недостаточно, и я должен был использовать Java 9. Классический вопрос RTFM.