Java - CodeName One:找不到symbole fileInput / Output

时间:2018-04-29 18:07:52

标签: java file-io copy codenameone java-io

我正在尝试使用代码名为One项目的java复制图像,这是提供图像正确副本的代码:

 /*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.mycompany.gui;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
 *
 * @author Emel
 */
public class NewMain {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) 
          throws FileNotFoundException, IOException 
    {
        // TODO code application logic here

    InputStream is = null;
        OutputStream os = null;
            is = new FileInputStream(new File("C:/Users/Emel/AppData/Local/Temp/temp8255862222083205111..png"));
            os = new FileOutputStream(new File("C:/wamp64/www/PiWeb1/TeamFlags/mpmppp.png"));
            byte[] buffer = new byte[1024];
            int length;
            while ((length = is.read(buffer)) > 0) {
                os.write(buffer, 0, length);
            }
    }

}

当我把它放在一个主java类中时它完美地工作(它只在我运行mainclass时才有效)但是当我构建项目时,构建失败并且输出显示了这个错误:

  

`C:\用户\ EMEL \文件\的NetBeansProjects \ PIMOBILE \移动\ SRC \ COM \ myCompany的\ GUI \ NewMain.java:8:   错误:找不到符号import java.io.File;符号:类文件   location:包java.io   C:\ Users \用户EMEL \文件\的NetBeansProjects \ PIMOBILE \移动\ SRC \ COM \ myCompany的\ GUI \ NewMain.java:9:   错误:找不到符号import java.io.FileInputStream;符号:
  class FileInputStream location:package java.io   C:\ Users \用户EMEL \文件\的NetBeansProjects \ PIMOBILE \移动\ SRC \ COM \ myCompany的\ GUI \ NewMain.java:10:   错误:找不到符号导入java.io.FileNotFoundException;
  符号:class FileNotFoundException location:package java.io   C:\ Users \用户EMEL \文档\的NetBeansProjects \ PIMOBILE \手机\ SRC \ COM \ myCompany的\ GUI \ NewMain.java:11:   错误:找不到符号导入java.io.FileOutputStream;符号:
  class FileOutputStream location:package java.io   C:\ Users \用户EMEL \文档\的NetBeansProjects \ PIMOBILE \手机\ SRC \ COM \ myCompany的\ GUI \ NewMain.java:25:   错误:找不到符号             抛出FileNotFoundException,IOException符号:class FileNotFoundException location:class NewMain   C:\ Users \用户EMEL \文件\的NetBeansProjects \ PIMOBILE \移动\ SRC \ COM \ mycompagny \服务\ ServiceEquipe.java:38:   错误:找不到符号               is = new FileInputStream(“C:/Users/Emel/AppData/Local/Temp/temp8255862222083205111..png”);   symbol:类FileInputStream位置:类ServiceEquipe   C:\ Users \用户EMEL \文档\的NetBeansProjects \ PIMOBILE \手机\ SRC \ COM \ mycompagny \服务\ ServiceEquipe.java:39:   错误:找不到符号               os = new FileOutputStream(symbol:class FileOutputStream location:class ServiceEquipe   C:\ Users \用户EMEL \文件\的NetBeansProjects \ PIMOBILE \移动\ SRC \ COM \ myCompany的\ GUI \ NewMain.java:31:   错误:找不到符号               is = new FileInputStream(new File(“C:/Users/Emel/AppData/Local/Temp/temp8255862222083205111..png”));   symbol:类FileInputStream位置:类NewMain   C:\ Users \用户EMEL \文件\的NetBeansProjects \ PIMOBILE \移动\ SRC \ COM \ myCompany的\ GUI \ NewMain.java:31:   错误:找不到符号               is = new FileInputStream(new File(“C:/Users/Emel/AppData/Local/Temp/temp8255862222083205111..png”));   symbol:class文件位置:类NewMain   C:\ Users \用户EMEL \文件\的NetBeansProjects \ PIMOBILE \移动\ SRC \ COM \ myCompany的\ GUI \ NewMain.java:32:   错误:找不到符号               os = new FileOutputStream(new File(“C:/wamp64/www/PiWeb1/TeamFlags/mpmppp.png”));符号:类   FileOutputStream位置:类NewMain   C:\ Users \用户EMEL \文件\的NetBeansProjects \ PIMOBILE \移动\ SRC \ COM \ myCompany的\ GUI \ NewMain.java:32:   错误:找不到符号               os = new FileOutputStream(new File(“C:/wamp64/www/PiWeb1/TeamFlags/mpmppp.png”));符号:类   文件位置:类NewMain注:   C:\ Users \用户EMEL \文档\的NetBeansProjects \ PIMOBILE \手机\ SRC \ COM \ mycompagny \服务\ ServiceEquipe.java   使用或覆盖已弃用的API。注意:重新编译   -Xlint:弃用细节。注意:C:\ Users \ Emel \ Documents \ NetBeansProjects \ PIMOBILE \ Mobile \ src \ com \ mycompagny \ Service \ ServiceEquipe.java   使用未经检查或不安全的操作。注意:重新编译   -Xlint:取消选中以获取详细信息。 11个错误

`

现在我需要将该代码块放入一个方法来回忆它,我试图以不同的方式做到这一点,但我失败了它只有在我在主类中使用它时才有效。

PS1:当我从项目中删除该主类时,构建成功。

PS2:该解决方案在普通的java项目中运行良好,所以我认为问题是由于代号为One。

我正在使用netbeans。

1 个答案:

答案 0 :(得分:0)

Codename One中不存在

java.io.File, java.io.FileInputStream, java.io.FileNotFoundException & java.io.FileOutputStream

有一个很长的解释here

有几个原因,但这些特定的API在移动设备上无法正常运行,您的应用需要与其他进程隔离运行并且访问受限/受限制。例如。在你的情况下,很明显在Android或iOS上不存在C:路径,这两个路径都是Unix衍生产品(Linux / BSD)。

您需要使用FileSystemStorageStorage,其中有一节介绍the developer guide中的内容。