我在做什么
我正在尝试构建一个java.net应用程序,在该应用程序中,客户机和服务器必须通过串行收集类型互相发送数据,如下所示
byte[]
.
我想做的
由于未知原因,我的数据输入流无法解析该方法
readAllBytes()
.
一个朋友把它扔到了他的侧面,没有抱怨。我不确定这怎么可能是一个版本问题,但我检查了并且没有错误地配置我的项目。我使用的是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();
}
}
这也是一个渐变项目,为了完整性,这是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问题。