JTextArea messageDisplayArea=new JTextArea();
messageDisplayArea.addMouseListener(new MouseListener(){
public void mouseEntered(MouseEvent m){
JOptionPane.showMessageDialog(null,"a");
}
});
messageDisplayArea.addMouseListener(new MouseListener(){
public void mouseExited(MouseEvent m){
}
});
messageDisplayArea.addMouseListener(new MouseListener(){
public void mouseClicked(MouseEvent m){
}
});
messageDisplayArea.addMouseListener(new MouseListener(){
public void mousePressed(MouseEvent m){
}
});
messageDisplayArea.addMouseListener(new MouseListener(){
public void mouseReleased(MouseEvent m){
}
});
Run Code Online (Sandbox Code Playgroud)
这是我的代码的一部分,我已经导入了java.awt。*和java.awt.event。*和javax.swing。*,但是尚未实现MouseListener接口。我已经从MouseListener接口重写了所有方法,但是编译器引发了5个错误,所有错误都表明该类不是抽象的,并且不重写MouseListener中的抽象方法。我究竟做错了什么?
根据API,这些是事实:
seek(long bytePosition)简单的说法,将指针移动到与指定的位置bytePosition的参数。bytePosition大于文件长度时,除非在(新)末尾写入一个字节,否则文件长度不会改变。但是,我好奇的情况是:当有一个没有数据的文件(0字节)时,我执行以下代码:
file.seek(100000-1);
file.write(0);
Run Code Online (Sandbox Code Playgroud)
所有的100,000个字节0几乎立即被填满。我可以说10毫秒超过200GB。
但是,当我尝试使用其他方法(例如BufferedOutputStream同一进程)写入100000字节时,将花费几乎无限长的时间。
时间差异的原因是什么?有没有更有效的方法来创建n字节文件并用0s 填充?
编辑: 如果没有实际写入数据,文件中如何填充数据?示例代码:
RandomAccessFile out=new RandomAccessFile("D:/out","rw");
out.seek(100000-1);
out.write(0);
out.close();
Run Code Online (Sandbox Code Playgroud)
这是输出:
另外,如果文件足够大,由于空间不足,我将无法再写入磁盘。