代码之家  ›  专栏  ›  技术社区  ›  Sven Keller Viral

读取txt文件并将其存储在简单数组中

  •  0
  • Sven Keller Viral  · 技术社区  · 7 年前

    我对从Android中现有的txt文件加载文件有点问题。

    计划是读取txt文件并将读取的字符串存储到appstart上的字符串数组中。

    在txt文件中保存代码:

        private void safeScore() {
                File myDir = new File(Environment.getExternalStorageDirectory().toString()
                        + directoryPath);
                myDir.mkdir();
    
                try {
                    File myFile = new File(Environment.getExternalStorageDirectory().getPath() + directoryPath +"/Spieler.txt");
                    myFile.createNewFile();
                    FileOutputStream fOut = new FileOutputStream(myFile);
                    OutputStreamWriter myOutWriter = new OutputStreamWriter(fOut);
    
                    for (int i = 0; i < Highscore.nameHS.length; i++)
                    {
                        myOutWriter.write(Highscore.nameHS[i] + ";");
                    }
    
                    myOutWriter.close();
                    fOut.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
    }
    

    现在我在appstart上计划将这个txt的值存储回数组。简单地说——相反的方式。

    split命令的分隔符是“;”。

    Highscore类的字符串数组名称是普通数组。没有arraylist。

    也许有人可以帮我把值存储回数组。

    问候语,

    斯文

    2 回复  |  直到 7 年前
        1
  •  0
  •   elvirt    7 年前
    BufferedReader in = new BufferedReader(new FileReader("Spieler.txt"));
    String s1 = new String();
    while((s1 = in.readLine()) != null) {
        Highscore.nameHS[i++];
    }
    in.close(); 
    

    如果我明白你想做什么,也许你可以朝这个方向试试

        2
  •  0
  •   Sven Keller Viral    7 年前

    如果其他人也有同样的问题。下面,您可以使用elvirt的代码片段找到我的解决方案:

            try
            {
                BufferedReader in = new BufferedReader(new FileReader(Environment.getExternalStorageDirectory().toString() + directoryPath + "/Spieler.txt"));
                String s1 = new String();
    
                int i = 0;
    
                while((s1 = in.readLine()) != null) {
    
                    //Toast.makeText(getApplicationContext(), "TextFile wurde geladen!" + " Wert: " + s1, Toast.LENGTH_SHORT).show();
                    Highscore.nameHS[i++] = s1;
    
                }
                in.close();
            }
            catch( IOException e )
            {
                Toast.makeText(getApplicationContext(), "Fehler beim Laden der Highscore-Spieler Datei!", Toast.LENGTH_LONG).show();
                e.printStackTrace();
            }