统计作业

用户界面

<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();
    }
}


个人项目所耗时间

posted @ 2017-03-27 12:03  夕阳下的浪客y  阅读(174)  评论(0编辑  收藏  举报