繁体   English   中英

不读取文件

[英]Doesn't read file

首先,我要为我的英语不好而道歉,我来自斯洛伐克;)

所以我有问题

我的朋友想创建一个非常简单的翻译应用程序,非常非常简单。 我们是android以及Java编程的初学者。 问题是,我们的apk在Eclipse中运行良好,因此我们决定创建apk文件并将其安装在我们的设备中。 因此,当我们安装它而出现问题时,设备中的apk无法读取文件中的单词。 因此,我们在eclipse模拟器中再次尝试了它,但是也无法正常工作,但是在创建apk之前,它已经完全正常了。 我们的文件在res / raw / dictionary中

这是我们的代码

package com.example.dictionary;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {

TextView Vstup;
TextView Vystup;
Button presun;
String slovo;
String word;
String found;
Boolean click;
int i;
int j;
String sub;
String strf;


@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Vstup = (TextView)findViewById(R.id.editText1);
    Vystup = (TextView)findViewById(R.id.textView2);

    presun = (Button)findViewById(R.id.button1);
    presun.setOnClickListener(new OnClickListener() 
    {
        public void onClick(View v)
        {


                try
                {
                    slovo = Vstup.getText().toString(); 
                    InputStream is = getResources().openRawResource(R.raw.dictionary);

                    InputStreamReader inputStreamReader = new InputStreamReader(is);
                    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

                    while((strf = bufferedReader.readLine()) != null)
                    {
                        i = strf.indexOf(":"); // vrati prvu poziciu retazca 
                        j = strf.indexOf(",");
                        sub = strf.substring(0,i); //vyberie zo stringu podretazec od indexu 0 po i
                        if(slovo.equals(sub))
                        {
                            found = strf.substring(i+1,j);
                            word = ("Výstup: " + found);
                            Vystup.setText(word.toString());

                        }
                        else {
                            word = ("Výstup: Word not found");
                            Vystup.setText(word.toString());
                        }

                    }
                    bufferedReader.close();

                }

                catch(Exception e)
                {
                    System.out.println(e);
                }
            }               



    });


}




@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}



}

错误日志

error opening trace file: no such file or directory(2)

getResources()。openRawResource()获取Android项目res / raw /目录中文件的InputStream。 openRawResource()的参数是一个名为R.raw的int。 filename ,其中filename是不带扩展名的文件的名称。

因此,该文件将不在res / assets /目录中。

尽管您可以仔细检查要读取的文件实际上是在res / raw中,但对我来说,可以构建APK并获得R.raw似乎很奇怪。 文件名条目(如果文件实际上不存在)。 我将使用调试器来逐步检查代码并检查变量。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM