文件的保存
学习了一段面向对象的语言java,从画图板的基本功能的完成,到五子棋的初步实现。前几天的学习io的学习,了解复制的实现,是通过电脑本身的系统,只要调用其中的代码即可完成。但在其中学习的过程中出现了许多问题,在老师的指导下也解决些问题。在复制时候,也要讲究时间,如果你用java.io.FileOutputStream or java.io.FileInputStream只能独个的输出和输入。对于大型的文件速度的不匹配会造成文件的掉失。而现在要解决的问题是怎样可以达成一个数据包.
String path="C:\\Documents and Settings\\Administrator\\桌面\\画板保存";// 创建文件输出流FileOutputStream fos = new FileOutputStream(path);// 包装成可写基本数据类型的流DataOutputStream dos = new DataOutputStream(fos);?也可以用java.io.BufferOutputStream? or? java.io.BufferOutputStream?也可以包装成可写基本数据类型的流,代码同上;在使用DataOutputStream or? DataOutputStream?时候再度直线的时候,如果你用写字符串的时候用writeBytes(String?s)时候,会出现字节掉失,如果要解决这个问题,要怎么办了,因为我不知道字符串有多少个字符,这就要这样写,代码如下://获得文件长度
int length=file.available();
System.out.println(length);
//定义字节数组
byte[]? bytefile=new byte[length];
//从输入流输入字节数
?int? i=file.read(bytefile);
??? if(i==-1){
??? System.out.println("文件复制成功");
???????????????? } 在弹出保存文件的对话框时候,有几个按钮,没有保存,而点击取消或退去会出现
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException则要搞一个判断,代码如下if (command.equals("保存")) {
???// 弹出文件选择器
???javax.swing.JFileChooser jfc = new javax.swing.JFileChooser();???// 显示 保存文件的对话框
???int num = jfc.showSaveDialog(null);
???if (num == 0) {// 如果点击的确认
????String path = jfc.getSelectedFile().getAbsolutePath();
????saveFile(ds.shapes, path);
???}
??}