我在一个安卓应用程序上工作,我试图访问一个CSV文件来编辑和写入,但无论我做什么,它似乎找不到文件

nhhxz33t  于 2023-01-06  发布在  其他
关注(0)|答案(1)|浏览(146)

即使我已经给了程序的确切路径到csv文件,它仍然不存在根据这程序.我有没有知道如何修复它.

public boolean SignUpFunc(String  username, String password){
    try {
        File file = new File("C:\\Users\\altaf\\OneDrive\\Desktop\\Java\\login.csv");
        BufferedReader reader = new BufferedReader(new FileReader(file.getPath()));
        String line;
        while ((line= reader.readLine())!= null){
            //split by ,
            String[] tokens = line.split(",");

            //Read the data
            if (username.equals(tokens[0])){
                reader.close();
                return false;
            }
        }
        save(file,username,password);

    } catch (Exception e) {
        e.printStackTrace();
    }
    return false;
}

    public static void save(File file, String username, String password){
        try{
            BufferedWriter Bwriter = new BufferedWriter(new FileWriter(file.getPath(),true));
            PrintWriter writer = new PrintWriter(Bwriter);
            writer.println(username+","+password);
            writer.flush();
            writer.close();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            System.out.println("FilenotFound");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

相关的代码,我已经启用了从清单的外部存储阅读。

tv6aics1

tv6aics11#

位置C:\users\blah\......对Android应用程序来说毫无意义,这是它无法工作的部分原因,另一部分原因是该文件不在您测试应用程序的设备上。
无论你是在移动终端上还是通过模拟器(虚拟设备)运行此应用,你都无法直接访问计算机的驱动器。最好的情况是,你必须Map一个网络驱动器,以便应用访问。最坏的情况是,你必须在计算机上设置一个API,以便应用命中并访问文件。
在这一点上,你可以使用一个数据库来保存密码信息,因为你可能需要保存其他信息。此外,CSV文件有一些严重的问题,不仅仅是纯文本的用户名和密码的安全问题(即使它们在进入你的保存方法之前被编码)。

相关问题