freedom_wings2 2016-02-04 08:58 采纳率: 0%
浏览 1579

安卓,文件夹创建及文件读写出错,希望大神看看

以下是mainActivity:

 package com.example.dell_pc.myapplication;

import android.content.DialogInterface;
import android.os.Bundle;
import android.os.Environment;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class MainActivity extends AppCompatActivity {
    Button but_write;
    Button but_read;
    TextView tx;
    String str;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
        but_write=(Button)super.findViewById(R.id.but_write);
        but_read=(Button)super.findViewById(R.id.but_read);
        tx=(TextView)super.findViewById(R.id.print);
        try {
            createFile();
            but_write.setOnClickListener(new WriteOnClickListener());
            but_read.setOnClickListener(new ReadOnClickListener());
        }
        catch(Exception e){
            tx.setText("创建文件出错");
        }


    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    class ReadOnClickListener implements View.OnClickListener
    {
        String str;
        public void onClick(View v)
        {
            try {
                File f1 = new File(str);
                FileInputStream fIn = new FileInputStream(f1);
                Scanner s = new Scanner(f1);
                String str2 = "";
                if (s.hasNext()) str2 = s.next();
                tx.setText(str2);
                s.close();
            }
            catch(Exception e)
            {
                tx.setText("创建输入流的时候出了问题");
            }
        }


    }
    class WriteOnClickListener implements View.OnClickListener
    {
        public void onClick(View v)
        {
            try {
                File f2 = new File(str);
                FileOutputStream fOut = new FileOutputStream(f2);
                PrintWriter printWriter = new PrintWriter(fOut);
                printWriter.println("this is a test");
                printWriter.close();
            }
            catch(Exception e)
            {
                tx.setText("创建输出流的时候出了问题");
            }
        }
    }

    public void createFile() throws
            IOException
    {
        if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED))
        {
            String path=Environment.getExternalStorageDirectory().getAbsolutePath()+"/t";
            File file=new File(path);
            if(!file.exists()) file.mkdirs();
            str=path+"/test.txt";
            file=new File(str);
            if(!file.exists()) file.createNewFile();

        }
    }
}

下面贴张图:
图片说明

从图中看出,创建文件那里就出错了,希望大神解答,指出不正确之处

  • 写回答

7条回答

  • 91program 博客专家认证 2016-02-04 13:09
    关注

    这个路径: String path=Environment.getExternalStorageDirectory().getAbsolutePath()+"/t"; 无效吧
    你把这个路径通过 CatLog 输出看看

    评论

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况