gpt4 book ai didi

java - 不读取文件

转载 作者:行者123 更新时间:2023-12-01 04:18:59 25 4
gpt4 key购买 nike

首先,我想为我糟糕的英语道歉,我来自斯洛伐克;)

这就是我的问题

我的 friend 想要创建一个非常简单的翻译应用程序,非常非常非常简单。我们是 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.filename 的 int,其中 filename 是不带扩展名的文件名。

因此,该文件不会位于 res/assets/目录中。

虽然您可以仔细检查您尝试读取的文件实际上位于 res/raw 中,但对我来说,您可以构建 APK 并获取 R.raw.文件名 条目,这似乎很奇怪如果该文件实际上不存在。我将使用调试器来单步执行代码并检查变量。

关于java - 不读取文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19167508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com