我有一个BufferedInputStream没有正确标记.这是我的代码:
public static void main(String[] args) throws Exception {
byte[] b = "HelloWorld!".getBytes();
BufferedInputStream bin = new BufferedInputStream(new ByteArrayInputStream(b));
bin.mark(3);
while (true){
byte[] buf = new byte[4096];
int n = bin.read(buf);
if (n == -1) break;
System.out.println(n);
System.out.println(new String(buf, 0, n));
}
}
Run Code Online (Sandbox Code Playgroud)
这是输出:
11
HelloWorld!
Run Code Online (Sandbox Code Playgroud)
我希望它输出
3
Hel
8
loWorld!
Run Code Online (Sandbox Code Playgroud)
我也尝试使用纯粹的ByteArrayInputStream作为代码bin,但它也没有用.
这可能很明显,所以请耐心等待.
是的,我知道java.io.File没有默认构造函数.
问题是,当我尝试扩展java.io.File时,它说"无法在java.io.File中找到构造函数File()",即使我重写了java.lang.Object中的默认构造函数.
这是我的代码:
AbsRelFile.java
import java.io.File;
public class AbsRelFile extends File {
File f;
private AbsRelFile(){
}
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个错误,即使我重写了构造函数.
注意:此课程尚未完成.不要评论为什么我不需要这个或关于这个类如何无用的评论.我刚收到此错误之前就开始写它了.
如果String.replaceAll()找不到所需的替换字符串,它将返回什么?
如果我拥有class A {并class B extends A {愿意
B[] b = new B[1];
b[0] = new B();
System.out.println(b instanceof A[]);
Run Code Online (Sandbox Code Playgroud)
打印出真或假?