Как мне получить доступ к простому текстовому файлу в приложении для Android?

#java #android #android-layout

#java #Android #android-layout

Вопрос:

Я создаю приложение, в котором я перечисляю учителей и все, что они делают в моей школе. У меня есть 3 файла, class Teacher, который представляет собой объект, содержащий 7 строковых переменных, класс TeacherList, в котором я беру файл .txt и извлекаю из него свои данные, чтобы сформировать учителей. Вот в чем заключается моя проблема, куда я должен поместить файл? Вот код списка учителей:

 package com.mthebron.mthapp;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class TeacherList {
public static Teacher[] MakeList() throws FileNotFoundException{
    Teacher[] teachers=new Teacher[71]; 
    File list=new File("C:/Users/Gareth/Desktop/TeacherInformation.txt");
    Scanner iScanner=new Scanner(list);
    StringBuilder teachersBuilder=new StringBuilder();
    while(iScanner.hasNext()) {
        teachersBuilder.append(iScanner.nextLine());
        teachersBuilder.append("n");
    }
    String fullList=teachersBuilder.toString();
    String[] seperatedList=fullList.split("'");
    String[] blah=seperatedList[0].split("n");
    String temp=blah[0].substring(3, 9);    
    String name=temp;
    String department=blah[1];
    String planning=blah[2];
    String club=blah[3];
    String sport=null;
    String email=blah[5];
    String website=null;
    teachers[0]=new Teacher(name, department, planning, club, sport, email, website);
    System.out.println(teachers[0].getSportsCoached());
    for (int i = 1; i < seperatedList.length; i  ) {
        blah=seperatedList[i].split("n");
        name=blah[1];
        department=blah[2];
        if (blah[3].equals("null")) {
            planning=null;
        }else planning=blah[3];
        if (blah[4].equals("null")) {
            sport=null;
        }else sport=blah[4];
        if (blah[5].equals("null")) {
            club=null;
        }else club=blah[5];
        if (blah[6].equals("null")) {
            email=null;
        }else email=blah[6];
        if (blah[7].equals("null")) {
            website=null;
        }else website=blah[7];
        teachers[i]=new Teacher(name, department, planning, sport, club, email, website);
    }
    return teachers;
}
  

Куда я должен поместить файл и сможет ли он по-прежнему работать как файловый объект?

Ответ №1:

Если вы не знаете, куда поместить файл, вы можете просто сказать

 File list = new File("TeacherInformation.txt")
  

и он сохранит его локально, вы сможете получить к нему доступ таким же образом

Комментарии:

1. ну, где будет «локально», например, в какой папке проекта Android?

Ответ №2:

Это фиксированный файл или вы добавляете к нему? Если исправлено, поместите в папку assets. Что-то вроде…

 Scanner iScanner=new Scanner(getAssets().open("TeacherInformation.txt"));
  

Комментарии:

1. когда я добавил эту строку, я получаю сообщение об ошибке, в котором говорится, что getAssets не является методом

2. также файл исправлен, и я добавил его в папку assets

3. Вам нужен «Контекст». Я предполагал, что вы звоните непосредственно из своей активности. Смотрите здесь: developer.android.com/reference/android/content /…