相关疑难解决方法(0)

阅读一个简单的文本文件

我试图在我的示例Android应用程序中读取一个简单的文本文件.我使用下面编写的代码来读取简单的文本文件.

InputStream inputStream = openFileInput("test.txt");
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
Run Code Online (Sandbox Code Playgroud)

我的问题是:我应该将这个"test.txt"文件放在我的项目中?我已经尝试将文件放在文件夹下"res/raw","asset"但我得到了exception "FileNotFound"上面写的代码第一次执行时的执行.

谢谢您的帮助

android text-files java-io

115
推荐指数
5
解决办法
21万
查看次数

如何在测试执行期间从assets文件夹访问文件?

如何在单元测试执行期间从assets文件夹访问文件?我的项目是使用Gradle构建的,我使用Robolectric来运行测试.似乎gradle正在认识到assets:

在此输入图像描述

这就是我在努力阅读文件的方式:

public String readFileFromAssets(String fileName) throws IOException {
    InputStream stream = getClass().getClassLoader().getResourceAsStream("assets/" + fileName);
    Preconditions.checkNotNull(stream, "Stream is null");
    BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "UTF-8"));
    return IOUtils.toString(reader);
}
Run Code Online (Sandbox Code Playgroud)

stream总是如此null.我尝试了许多不同的方法,即使用不同的方法定义文件的路径.

非常感谢你提前.

android gradle android-assets robolectric

18
推荐指数
4
解决办法
2万
查看次数

在Google Maps API v2 Android中添加多个标记

我想在我的地图中添加多个标记,但我不知道如何.

目前,我正在使用它,它正常工作:

Marker m1 = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(38.609556, -1.139637))
                .anchor(0.5f, 0.5f)
                .title("Title1")
                .snippet("Snippet1")
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.logo1)));


Marker m2 = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(40.4272414,-3.7020037))
                .anchor(0.5f, 0.5f)
                .title("Title2")
                .snippet("Snippet2")
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.logo2)));

Marker m3 = googleMap.addMarker(new MarkerOptions()
                .position(new LatLng(43.2568193,-2.9225534))
                .anchor(0.5f, 0.5f)
                .title("Title3")
                .snippet("Snippet3")
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.logo3)));
Run Code Online (Sandbox Code Playgroud)

但是当我想在我的地图中添加300个标记时,就会出现问题.一个接一个地做这件事非常烦人.

有没有办法从数组或任何东西读取标记?

另一个问题:我可以从外部文件中读取标记,因此我可以添加或更新标记而无需触及应用程序代码吗?

谢谢.

android google-maps google-maps-markers google-maps-api-2

16
推荐指数
2
解决办法
6万
查看次数

finally块中的关闭文件不起作用

try {
    FileReader fr = new FileReader(file);
    BufferedReader br = new BufferedReader(fr);
    String line = null;
} catch (FileNotFoundException fnf) {
    fnf.printStackTrace();
} finally {
    fr.close();
}
Run Code Online (Sandbox Code Playgroud)

fr.close()显示一个错误:

fr无法解决

我曾经读过在finally块中关闭一个文件是一个很好的做法.
那是做错了什么的?

java try-catch-finally

12
推荐指数
2
解决办法
2万
查看次数

Android:在Android中为应用程序离线存储JSON数据的最佳方法是什么?

我想实现一个应用程序,它将显示路线编号,骑手已登陆谷歌地图.因此,要查找路由号,我需要一些有关路由的信息,这些信息在JSON文件中定义.JSON文件中的信息将从应用程序中脱机处理和解析.它也应该与应用程序一起安装和卸载.JSON文件包含100多个route_direction.它看起来像下面的代码.我可以在哪个文件夹中存储JSON文件到我的Android项目中?存储这样的数据的最佳方法是什么?

JSON文件:

{"route_direction":[
   {
     1_ab:{
                     
                    { 
                      stopsName_arrivalTime:{"abc":{"mon-fri":[05:33,06:00,06:30,...],
                                                        "sat":[],
                                                        "son":[]
                                                               }
                                             }, 

                                             
                         stops_loca:{lat:53.337994, long:10.600423} ,

                    },
                    { 
                      stopsName_arrivalTime:{"def":{"mon-fri":[],
                                                        "sat":[],
                                                        "son":[]
                                                         }
                                             }, 

                                             
                         stops_loca:{lat:53.740624, long:10.101322} 

                    },
                    { 
                      stopsName_arrivalTime:{"hgk":{"mon-fri":[],
                                                        "sat":[],
                                                        "son":[]
                                                               }
                                             }, 

                                             
                         stops_loca:{lat:53.644834, long:10.203372} 

                    }



                }

       },

        {1_ba:{
                     
                    { 
                      stopsName_arrivalTime:{"hgk":{"mon-fri":[05:33,06:00,06:30],
                                                        "sat":[],
                                                        "son":[]
                                                               }
                                             }, 

                                             
                         stops_loca:{lat:53.437994, long:10.400423} ,

                    },
                    { 
                      stopsName_arrivalTime:{"def":{"mon-fri":[],
                                                        "sat":[],
                                                        "son":[]
                                                         }
                                             }, 

                                             
                         stops_loca:{lat:53.540624, long:10.601322} 

                    },
                    { 
                      stopsName_arrivalTime:{"abc":{"mon-fri":[],
                                                        "sat":[],
                                                        "son":[]
                                                               }
                                             }, 

                                             
                         stops_loca:{lat:53.244834, long:10.703372} 

                    }


                }

        },........

   ]

}
Run Code Online (Sandbox Code Playgroud)

android json

12
推荐指数
1
解决办法
2万
查看次数

Android上资源文件夹中的ResourceBundle

我目前在纯Java程序中使用ResourceBundles。现在,我想在Android应用程序中使用相同的文件。当文件放置在例如/ sdcard /时,它可以按预期工作。有没有办法直接从已知的android文件夹结构中加载它们?例如从资产没有手动应对它们到SD卡?

这适用于sdcard:

    File file = new File("/sdcard/");
    URL[] urls = new URL[0];
    try {
       urls = new URL[]{file.toURI().toURL()};

    } catch (MalformedURLException e) {
        e.printStackTrace();
    }

    ClassLoader loader = new URLClassLoader(urls);
    ResourceBundle rb = ResourceBundle.getBundle("test", Locale.DEFAULT, loader);
Run Code Online (Sandbox Code Playgroud)

该网址不适用于assests文件夹:

   urls = new URL[]{new URL("file:///android_asset/test/")};
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

android assets resourcebundle

5
推荐指数
1
解决办法
748
查看次数

如何从 Android Studio 中的资源中读取文本文件?

我在 Android Studio 的资产文件目录中可能有 wifi2.txt 文件。但是,当我尝试访问它时,我不断收到 NULLPointException。我的代码如下:(提前非常感谢) 在此输入图像描述

             //CSV FILE READING
    File file = null;



    try {



        FileInputStream is = new FileInputStream(file);

        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(getAssets().open("wifi2.txt")));
            String line;
            Log.e("Reader Stuff",reader.readLine());
            while ((line = reader.readLine()) != null) {
                Log.e("code",line);
                String[] RowData = line.split(",");
                LatLng centerXY = new LatLng(Double.valueOf(RowData[1]), Double.valueOf(RowData[2]));
                if (RowData.length == 4) {
                    mMap.addMarker(new MarkerOptions().position(centerXY).title(String.valueOf(RowData[0]) + String.valueOf(RowData[3])).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
                }

            }

        } catch (IOException ex) {
           ex.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (IOException e) {
               e.printStackTrace(); …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-assets android-studio

3
推荐指数
2
解决办法
2万
查看次数

如何从资产文件夹创建文件对象?

我正在尝试从资产文件夹中读取pdf文件,但我不知道如何获取pdf文件的路径。我右键单击pdf文件,然后选择“复制路径”并粘贴在此处输入图片说明

这是我的代码的另一个屏幕截图: 在此处输入图片说明

这是我的代码:

File file = new File("/Users/zulqarnainmustafa/Desktop/ReadPdfFile/app/src/main/assets/Introduction.pdf");

    if (file.exists()){
        Uri path = Uri.fromFile(file);
        Intent intent = new Intent(Intent.ACTION_VIEW);
        intent.setDataAndType(path, "application/pdf");
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

        try {
            this.startActivity(intent);
        }
        catch (ActivityNotFoundException e) {
            Toast.makeText(this, "No application available to view PDF", Toast.LENGTH_LONG).show();
        }
    }else{
        Toast.makeText(this, "File path not found", Toast.LENGTH_LONG).show();
    }
Run Code Online (Sandbox Code Playgroud)

我总是找不到文件,请帮助我创建File对象,或者让我知道如何获取我也尝试过file:///android_asset/Introduction.pdf但没有成功的文件的确切路径。我也尝试使用Image.png,但从未成功过file.exists()。我正在使用Mac版本的Android Studio。谢谢

java pdf android android-studio

3
推荐指数
2
解决办法
6024
查看次数

Android - 使用意图从手机内存中打开文件

我正在开发一个应用程序,它将手机中的 .txt 文件作为输入并将其打印在 TextView 上,

public class MainActivity extends AppCompatActivity {
Button button;
Intent intent;private StringBuilder text = new StringBuilder();



private InputStream getResources(String s) {
    return null;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    button = (Button) findViewById(R.id.btn);

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            intent = new Intent(Intent.ACTION_GET_CONTENT);
            intent.setType("text/plain");
            startActivityForResult(intent, 7);
            Log.v("###", "parent "  + getParent());
        }

    });
} @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    String Fpath = data.getDataString();
  //  final …
Run Code Online (Sandbox Code Playgroud)

java android bufferedreader

0
推荐指数
1
解决办法
1996
查看次数