Java - CodeName One: не найден символ ввода / вывода файла - PullRequest
0 голосов
/ 29 апреля 2018

Я пытаюсь скопировать изображение с 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 (он работает только при запуске основного класса), но при сборке проекта сборка завершается неудачно, и вывод показывает эту ошибку:

`C: \ Users \ Эмель \ Documents \ NetBeansProjects \ PIMOBILE \ Mobile \ SRC \ COM \ MyCompany \ ГИП \ NewMain.java: 8: ошибка: не удается найти символ импорта java.io.File; символ: файл класса расположение: пакет java.io C: \ Users \ Эмель \ Documents \ NetBeansProjects \ PIMOBILE \ Mobile \ SRC \ COM \ MyCompany \ ГИП \ NewMain.java: 9: ошибка: не удается найти символ импорта java.io.FileInputStream; символ:
Расположение класса FileInputStream: пакет java.io C: \ Users \ Эмель \ Documents \ NetBeansProjects \ PIMOBILE \ Mobile \ SRC \ COM \ MyCompany \ ГИП \ NewMain.java: 10: ошибка: не удается найти импорт символов java.io.FileNotFoundException;
символ: класс FileNotFoundException расположение: пакет java.io C: \ Users \ Эмель \ Documents \ NetBeansProjects \ PIMOBILE \ Mobile \ SRC \ COM \ MyCompany \ ГИП \ NewMain.java: 11: ошибка: не удается найти символ импорта java.io.FileOutputStream; символ:
Расположение класса FileOutputStream: пакет java.io C: \ Users \ Эмель \ Documents \ NetBeansProjects \ PIMOBILE \ Mobile \ SRC \ COM \ MyCompany \ ГИП \ NewMain.java: 25: ошибка: не могу найти символ выдает исключение FileNotFoundException, IOException: класс FileNotFoundException расположение: класс NewMain C: \ Users \ Эмель \ Documents \ NetBeansProjects \ PIMOBILE \ Mobile \ SRC \ COM \ mycompagny \ Service \ ServiceEquipe.java: 38: ошибка: не могу найти символ is = new FileInputStream ("C: /Users/Emel/AppData/Local/Temp/temp8255862222083205111..png"); символ: класс FileInputStream расположение: класс ServiceEquipe C: \ Users \ Эмель \ Documents \ NetBeansProjects \ PIMOBILE \ Mobile \ SRC \ COM \ mycompagny \ Service \ ServiceEquipe.java: 39: ошибка: не могу найти символ os = новый FileOutputStream (символ: класс FileOutputStream расположение: класс ServiceEquipe C: \ Users \ Эмель \ Documents \ NetBeansProjects \ PIMOBILE \ Mobile \ SRC \ COM \ MyCompany \ ГИП \ NewMain.java: 31: ошибка: не могу найти символ is = new FileInputStream (новый файл ("C: /Users/Emel/AppData/Local/Temp/temp8255862222083205111..png")); символ: класс FileInputStream расположение: класс NewMain C: \ Users \ Эмель \ Documents \ NetBeansProjects \ PIMOBILE \ Mobile \ SRC \ COM \ MyCompany \ ГИП \ NewMain.java: 31: ошибка: не могу найти символ is = new FileInputStream (новый файл ("C: /Users/Emel/AppData/Local/Temp/temp8255862222083205111..png")); символ: класс Расположение файла: класс NewMain C: \ Users \ Эмель \ Documents \ NetBeansProjects \ PIMOBILE \ Mobile \ SRC \ COM \ MyCompany \ ГИП \ NewMain.java: 32: ошибка: не могу найти символ os = new FileOutputStream (новый файл ("C: /wamp64/www/PiWeb1/TeamFlags/mpmppp.png")); символ: класс Расположение FileOutputStream: класс NewMain C: \ Users \ Эмель \ Documents \ NetBeansProjects \ PIMOBILE \ Mobile \ SRC \ COM \ MyCompany \ ГИП \ NewMain.java: 32: ошибка: не могу найти символ os = new FileOutputStream (новый файл ("C: /wamp64/www/PiWeb1/TeamFlags/mpmppp.png")); символ: класс Расположение файла: класс NewMain Примечание: C: \ Users \ Эмель \ Documents \ NetBeansProjects \ PIMOBILE \ Mobile \ SRC \ COM \ mycompagny \ Service \ 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 голосов
/ 30 апреля 2018

java.io.File, java.io.FileInputStream, java.io.FileNotFoundException & java.io.FileOutputStream не существует в Codename One.

Здесь есть длинное объяснение здесь .

Есть несколько причин, но эти конкретные API не будут работать правильно на мобильном устройстве, где ваше приложение должно работать изолированно от других процессов и имеет ограниченный / ограниченный доступ. Например. в вашем случае совершенно очевидно, что путь C: не будет существовать на Android или iOS, оба из которых являются производными Unix (Linux / BSD).

Вам необходимо использовать FileSystemStorage или Storage, раздел о них есть в руководстве разработчика .

...