安卓如何将文件保存至SD卡

3
大家好,我有一个小问题。
我有这段代码可以将图片保存到SD卡中。
public String SDSave( ) { //View arg0
                // TODO Auto-generated method stub
                OutputStream outStream = null;
                File file = new File( extStorageDirectory , AdName + ".PNG");
                try {
                    outStream = new FileOutputStream(file);
                    bm.compress(Bitmap.CompressFormat.PNG, 100, outStream);
                    outStream.flush();
                    outStream.close();

                    Toast.makeText(WhereAmI.this, "Saved", Toast.LENGTH_LONG).show();

                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    Toast.makeText(WhereAmI.this, e.toString(), Toast.LENGTH_LONG).show();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                    Toast.makeText(WhereAmI.this, e.toString(), Toast.LENGTH_LONG).show();
                }

            }

我正在另一个方法中这样调用它:
String sdSave = SDSave(extStorageDirectory + "/qr11.PNG");

"我正在显示两个错误,第一个在方法public String SDSave( )中,它说:"
This method must return a result of type String

第二个是在 String sdSave = SDSave(extStorageDirectory + "/qr11.PNG");,它的意思是:
The method SDSave() in the type WhereAmI is not applicable for the arguments (String)

一些关于如何修复它的帮助,请...
谢谢。
5个回答

2
您将方法声明为public String,这意味着该函数必须返回一个String对象(使用return关键字)。如果您不希望函数返回任何内容,请改用void关键字而不是String
第二个错误意味着您在某个地方使用字符串作为参数调用了SDSave方法(SDSave(extStorageDirectory + "/qr11.PNG");),而该函数不接受参数(public String SDSave( ))。
我建议您尝试一下Java教程两个,因为这些规则是Java(实际上是许多编程语言)的基础知识。

1

你要求你的方法返回一个字符串

 public String SDSave()

在你的代码末尾,你需要加上这行:

return "someString"; 

如果您不想返回一个字符串,请使用:

public void SDSave()

第二个错误是,您试图将一个字符串传递到您的方法中,但是您的方法不接受任何变量。您需要:
public void SDSave(String myInputStringVariable)

是的,这些都是Java的基础知识,所以我建议你先去了解一下Java和面向对象编程,还可以看看这个链接:

Java程序员常犯的十个错误


1

尝试在清单文件中编写此行:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

希望这能对您有所帮助。

0
public void SDSave(String file){
    File f=new File(file);
    ...
}

0

嗨,你可以使用我在Github存储库link上分享的示例代码。这个示例包含以下内容:

  1. 从网络下载图像。
  2. 你也可以分享这张图片。
  3. 你可以将这张图片保存在SD卡上。
  4. 还有图像缓存功能。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接