我正在开发一个项目,我必须从文件中读取数据并将数据存储到字符串数组中。
字符串数组位置" 0"应该有文件的前13个字符,字符串数组位置" 1"应该有该文件的下13个字符。 我尝试使用getchar()只读取前13个字符,但我在使用它时遇到问题,任何人都可以指出我的错误,因为当我尝试在应用程序上运行时,应用程序崩溃。
InputStream is = getResources().openRawResource(R.raw.temp);
BufferedReader br = new BufferedReader(new InputStreamReader(is));
try {
while((string = br.readLine()) != null){
string.getChars(0,13, buffer, 0);
String str = new String(buffer);
text.setText(str);
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
break;
这里,buffer是一个char类型的数组。
答案 0 :(得分:0)
使用String.substring(startIndex, endIndex)
检索字符串的一部分。
答案 1 :(得分:0)
当您尝试将字符串拆分为13个字符的块时,为什么要使用readLine
?
String str = "Some string that may or may not be longer than 13 characters";
int LENGTH = 13, off_multiplier = 0, read_size;
char [] buffer = new char[LENGTH];
ArrayList<String> string_array = new ArrayList<String>();
InputStream is = new ByteArrayInputStream(str.getBytes());
try(BufferedReader reader = new BufferedReader(new InputStreamReader(is))){
while( (read_size = reader.read(buffer, off_multiplier * LENGTH ,LENGTH)) != -1){
string_array.add(new String(buffer,0,read_size));
}
}