Иногда Java не может найти файл

У меня есть два сценария в студии Android: один для чтения текстового файла и для решения, что делать с информацией в текстовом документе. Если я вручную запустил программу чтения, она работает нормально, но если я попытаюсь использовать код интерфейса, он скажет, что файл не может быть найден. вот код читателя

public static Map<String, TreeMap<String, String>> connectionsMap = new TreeMap<String, TreeMap<String,String>>(String.CASE_INSENSITIVE_ORDER) ;

    public static void main(String[] args) {
        setUp();
    }
    public static void setUp() {
        File file = new File("C:\\Users\\hunte\\AndroidStudioProjects\\Degrees\\Degrees.txt");//file with all the connections
        System.out.println(file.exists());
        try {
            Scanner scanner = new Scanner(file, "UTF-8");
            String description = "";
            String key = "";//key for map of main series
            String secondKey = "";//key for map of a mian serieses connections
            String text = "";
            while(scanner.hasNext()) {
                String see = scanner.next();
                if (see.equals("TITLEEND")) {
                    key=text;
                    text = "";
                }
                if (see.equals("CONNECTIONTITLEEND")) {
                    secondKey=text;
                    text = "";
                }
                if (see.equals("DESCRIPTIONEND")||see.equals("TERMINATE")) {
                    description =text;
                    text = "";
                    mapMaker(key,secondKey,description, false);

                }if (!see.equals("TERMINATE")&&!see.equals("CONNECTIONTITLEEND")&&!see.equals("DESCRIPTIONEND")&&!see.equals("TITLEEND")) {
                    if (text.length()<1)text=see;
                    else text+ = " "+see;
                }

            }
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        System.out.println(connectionsMap.size());
    }
    public static void mapMaker(String key, String secondKey, String description, boolean recursed) {
        if (!connectionsMap.containsKey(key)) {
            connectionsMap.put(key, new TreeMap<String,String>(String.CASE_INSENSITIVE_ORDER));
        }if (!connectionsMap.get(key).containsKey(secondKey)) {
            connectionsMap.get(key).put(secondKey, description);
        }

        if (!recursed) {
            mapMaker(secondKey,key,description,true);
        }
    }

он может найти файл в порядке, но когда метод setUp вызывается другим скриптом, он генерирует исключение «файл не найден». Вот другой сценарий.

public class MainActivity extends AppCompatActivity {
String FirstName, SecondName;

EditText InputOne, InputTwo;
Button submitButton;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Read.setUp();
        InputOne=(EditText) findViewById(R.id.FirstImput);
        InputTwo=(EditText) findViewById(R.id.SecondImput);
        submitButton=(Button) findViewById(R.id.Submit);

        submitButton.setOnClickListener(new android.view.View.OnClickListener(){
            @Override
            public void onClick(android.view.View v){
                FirstName=InputOne.getText().toString();
                SecondName=InputTwo.getText().toString();
                showToast(String.valueOf(Read.connectionsMap.size()));
            }
        });
    }

    public void showToast(String s){

        Toast.makeText(MainActivity.this,s,Toast.LENGTH_SHORT).show();
    }

}

Вот журнал

09/12 21:41:51: Launching app
$ adb install-multiple -r -t C:\Users\hunte\AndroidStudioProjects\Degrees\app\build\intermediates\split-apk\debug\slices\slice_0.apk C:\Users\hunte\AndroidStudioProjects\Degrees\app\build\intermediates\split-apk\debug\slices\slice_6.apk C:\Users\hunte\AndroidStudioProjects\Degrees\app\build\intermediates\split-apk\debug\dep\dependencies.apk C:\Users\hunte\AndroidStudioProjects\Degrees\app\build\intermediates\split-apk\debug\slices\slice_1.apk C:\Users\hunte\AndroidStudioProjects\Degrees\app\build\intermediates\resources\instant-run\debug\resources-debug.apk C:\Users\hunte\AndroidStudioProjects\Degrees\app\build\intermediates\split-apk\debug\slices\slice_3.apk C:\Users\hunte\AndroidStudioProjects\Degrees\app\build\intermediates\split-apk\debug\slices\slice_9.apk C:\Users\hunte\AndroidStudioProjects\Degrees\app\build\intermediates\split-apk\debug\slices\slice_4.apk C:\Users\hunte\AndroidStudioProjects\Degrees\app\build\intermediates\split-apk\debug\slices\slice_2.apk C:\Users\hunte\AndroidStudioProjects\Degrees\app\build\intermediates\split-apk\debug\slices\slice_5.apk C:\Users\hunte\AndroidStudioProjects\Degrees\app\build\intermediates\split-apk\debug\slices\slice_8.apk C:\Users\hunte\AndroidStudioProjects\Degrees\app\build\intermediates\split-apk\debug\slices\slice_7.apk C:\Users\hunte\AndroidStudioProjects\Degrees\app\build\intermediates\instant-run-apk\debug\app-debug.apk 
Split APKs installed
$ adb shell am start -n "com.example.hunte.degrees/com.example.hunte.degrees.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Client not ready yet..Waiting for process to come online
Connected to process 10284 on device google-pixel_xl-HT7530200093
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
I/e.hunte.degree: Late-enabling -Xcheck:jni
I/e.hunte.degree: The ClassLoaderContext is a special shared library.
W/e.hunte.degree: JIT profile information will not be recorded: profile file does not exits.
I/chatty: uid=10017(com.example.hunte.degrees) identical 10 lines
W/e.hunte.degree: JIT profile information will not be recorded: profile file does not exits.
I/InstantRun: starting instant run server: is main process
W/e.hunte.degree: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
W/e.hunte.degree: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
I/System.out: false
W/System.err: java.io.FileNotFoundException: C:\Users\hunte\AndroidStudioProjects\Degrees\Degrees.txt (No such file or directory)
W/System.err:     at java.io.FileInputStream.open0(Native Method)
                  at java.io.FileInputStream.open(FileInputStream.java:231)
                  at java.io.FileInputStream.<init>(FileInputStream.java:165)
                  at java.util.Scanner.<init>(Scanner.java:640)
                  at java.util.Scanner.<init>(Scanner.java:634)
                  at com.example.hunte.degrees.Read.setUp(Read.java:35)
                  at com.example.hunte.degrees.MainActivity.onCreate(MainActivity.java:19)
W/System.err:     at android.app.Activity.performCreate(Activity.java:7136)
                  at android.app.Activity.performCreate(Activity.java:7127)
                  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
                  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
                  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
                  at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
                  at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
                  at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
W/System.err:     at android.os.Handler.dispatchMessage(Handler.java:106)
                  at android.os.Looper.loop(Looper.java:193)
                  at android.app.ActivityThread.main(ActivityThread.java:6669)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
I/System.out: 0
D/OpenGLRenderer: Skia GL Pipeline
I/Adreno: QUALCOMM build                   : 984b9a6, Ibe1bf21abc
          Build Date                       : 06/04/18
          OpenGL ES Shader Compiler Version: EV031.24.00.00
          Local Branch                     : googldrp
          Remote Branch                    : 
          Remote Branch                    : 
          Reconstruct Branch               : 
          Build Config                     : S L 4.0.10 AArch64
I/Adreno: PFP: 0x005ff110, ME: 0x005ff066
I/ConfigStore: android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0
               android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0
I/OpenGLRenderer: Initialized EGL, version 1.4
D/OpenGLRenderer: Swap behavior 1
I/AssistStructure: Flattened final assist data: 2676 bytes, containing 1 windows, 9 views

Пожалуйста, покажите stacktrace а также вывод из приложения

Scary Wombat 13.09.2018 02:34

@ScaryWombat хорошо, я добавил это в

NotAMuskrat 13.09.2018 06:44
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
2
42
0

Другие вопросы по теме