统计作业
用户界面
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="文件名"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintVertical_bias="0.0" />
<EditText
android:id="@+id/et_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text=" "
tools:layout_editor_absoluteY="16dp"
tools:layout_editor_absoluteX="0dp" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="内容"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="59dp" />
<EditText
android:id="@+id/et_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="textPersonName"
android:text=" "
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="76dp" />
<Button
android:id="@+id/btn_write"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="保存"
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="119dp" />
<Button
android:id="@+id/btn_analysis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="解析"
tools:layout_editor_absoluteX="88dp"
tools:layout_editor_absoluteY="119dp" />
<TextView
android:id="@+id/tv_read"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" "
tools:layout_editor_absoluteX="0dp"
tools:layout_editor_absoluteY="167dp" />
主要代码
保存代码
private void write() {
String filename = et_name.getText().toString();
String filecontent = et_content.getText().toString();
try {
if (Environment.getExternalStorageState().equals
(Environment.MEDIA_MOUNTED)) {
File sdCardDir = Environment.getExternalStorageDirectory();
FileOutputStream fos = new FileOutputStream(sdCardDir.getCanonicalPath()
+ "/" + filename + ".txt");
fos.write(filecontent.getBytes("UTF-8"));
fos.close();
Toast.makeText(this, "数据保存到" + filename + ".txt" + "文件中了", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "未找到SD卡", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}
}
分析代码
private void analysis() {
String str = " ";
int words = 0;
int chars = 0;
int lines = 0;
int spaces = 0;
int marks = 0;
int character = 0;
String filename = et_name.getText().toString();
FileInputStream fis = null;
BufferedReader br = null;
try {
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
File file = new File(Environment.getExternalStorageDirectory().getCanonicalPath() + "/" + filename + ".txt");
if (file.exists()) {
fis = new FileInputStream(file);
br = new BufferedReader(new InputStreamReader(fis));
while ((str = br.readLine()) != null) {
char[] b = str.toCharArray();
for (int i = 0; i < str.length(); i++) {
if (b[i] == ' ') {
spaces++;
} else if (b[i] == ',' || b[i] == '.') {
marks++;
}
}
words += str.split("[ \\.,]").length;
chars += str.length();
lines++;
}
character = chars - (spaces + marks);
fis.close();
tv_read.setText("单词数:" + words + ",字符数:" + chars + ",行数:" + lines + ",字母数:" + character + ",空格数:" + spaces + ",标点符号数:" + marks);
} else {
Toast.makeText(this, "不存在该文件", Toast.LENGTH_SHORT).show();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
个人项目所耗时间