读取资产文件夹中的文件时出错 - java.lang.IllegalArgumentException: n <= 0: 0
Error reading file in asset folder - java.lang.IllegalArgumentException: n <= 0: 0
我目前正在开发 Android Studio。
我想从资产文件夹中读取一个文件,但它给了我这个错误。有人遇到过这个问题吗?
java.lang.IllegalArgumentException: n <= 0: 0
这是我的代码:
private String getRandomDataFromCategory(String name/* @param for the name of text file*/){
readings = "";
StringBuffer stringBuffer = new StringBuffer();
String[] temp;
try{
//getting file from asset folder
InputStream inputStream = getAssets().open(name + ".txt",AssetManager.ACCESS_BUFFER);
int size = inputStream.available();
byte[] buffer = new byte[size];
inputStream.read(buffer);
inputStream.close();
stringBuffer.append(new String(buffer));
// to check if stringBuffer isn't empty
if (stringBuffer.length() != 0){
//spliting stringBuffer
temp = stringBuffer.toString().split("\`");
Random random = new Random();
// to create random index of array temp
int a = random.nextInt(temp.length - 1);
readings = temp[a];
}
}catch (Exception e) {
Toast.makeText(gaming.this, e.toString(),Toast.LENGTH_SHORT).show();
}
return readings;
}
这个post有点类似于这个post
Android Random Number llegalArgumentException: n <= 0: 0
又不一样
您可以通过这种方式从资产中读取您的文本文件:
public String getContentFromFile(String filename)
{
StringBuilder s=new StringBuilder();
try
{
InputStream is=getAssets().open(filename);
BufferedReader br=new BufferedReader(new InputStreamReader(is,Charset.forName("UTF-8")));
String line;
while((line=br.readLine())!=null)
{
s.append(line).append("\n");
}
}catch (Exception | Error e){e.printStackTrace();}
return s.toString();
}
您可以根据自己的需要对其进行自定义,如果不起作用,您仍然可以在评论中要求澄清。
我目前正在开发 Android Studio。 我想从资产文件夹中读取一个文件,但它给了我这个错误。有人遇到过这个问题吗?
java.lang.IllegalArgumentException: n <= 0: 0
这是我的代码:
private String getRandomDataFromCategory(String name/* @param for the name of text file*/){
readings = "";
StringBuffer stringBuffer = new StringBuffer();
String[] temp;
try{
//getting file from asset folder
InputStream inputStream = getAssets().open(name + ".txt",AssetManager.ACCESS_BUFFER);
int size = inputStream.available();
byte[] buffer = new byte[size];
inputStream.read(buffer);
inputStream.close();
stringBuffer.append(new String(buffer));
// to check if stringBuffer isn't empty
if (stringBuffer.length() != 0){
//spliting stringBuffer
temp = stringBuffer.toString().split("\`");
Random random = new Random();
// to create random index of array temp
int a = random.nextInt(temp.length - 1);
readings = temp[a];
}
}catch (Exception e) {
Toast.makeText(gaming.this, e.toString(),Toast.LENGTH_SHORT).show();
}
return readings;
}
这个post有点类似于这个post Android Random Number llegalArgumentException: n <= 0: 0 又不一样
您可以通过这种方式从资产中读取您的文本文件:
public String getContentFromFile(String filename)
{
StringBuilder s=new StringBuilder();
try
{
InputStream is=getAssets().open(filename);
BufferedReader br=new BufferedReader(new InputStreamReader(is,Charset.forName("UTF-8")));
String line;
while((line=br.readLine())!=null)
{
s.append(line).append("\n");
}
}catch (Exception | Error e){e.printStackTrace();}
return s.toString();
}
您可以根据自己的需要对其进行自定义,如果不起作用,您仍然可以在评论中要求澄清。