系统无法找到路径

时间:2018-03-16 08:07:38

标签: java file path

尝试通过读取输入等基本功能来练习Java。

我正在尝试解析 <android.support.v4.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/ScrollView01" android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" android:fitsSystemWindows="true" android:scrollbars="vertical"> <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/sw_ManualRefresh" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/view" android:layout_alignStart="@+id/view" android:layout_marginTop="20dp" android:text="Today" android:textAllCaps="true" android:textSize="20sp" /> <View android:id="@+id/view" android:layout_width="match_parent" android:layout_height="1.7dp" android:layout_below="@id/textView5" android:layout_marginEnd="8dp" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:layout_marginStart="8dp" android:layout_marginTop="0dp" android:background="@color/colorAccent" /> <android.support.v7.widget.RecyclerView android:id="@+id/list_Today_plan" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:layout_marginTop="12dp" android:nestedScrollingEnabled="false" /> <TextView android:id="@+id/textView6" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Upcoming" android:textAllCaps="true" android:textColor="@color/colorPrimaryDark" android:textSize="20sp" /> <View android:id="@+id/view2" android:layout_width="match_parent" android:layout_height="1.7dp" android:layout_marginEnd="8dp" android:layout_marginLeft="8dp" android:layout_marginRight="13dp" android:layout_marginStart="8dp" android:background="@color/colorAccent" /> <android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginLeft="8dp" android:layout_marginRight="8dp" android:layout_marginTop="8dp" android:nestedScrollingEnabled="false" android:visibility="visible" /> </LinearLayout> </android.support.v4.widget.SwipeRefreshLayout> </android.support.v4.widget.NestedScrollView> 中找到的内容:

movies-sample.txt

尝试从

到达C:\University\BigDataManagement\Data-Mining\hw1\src\main\resources\movies-sample.txt
movies-sample.txt

使用找到here的答案来了解如何逐行解析大文件。

C:\University\BigDataManagement\Data-Mining\hw1\src\main\java
   \univ\bigdata\course\MoviesReviewsQueryRunner.java

我收到以下错误:

  

系统无法找到指定的路径

鉴于以上两条路径,我做错了什么?

2 个答案:

答案 0 :(得分:2)

如果它是一个Web应用程序,则resources文件夹是您的根元素,否则它将是评论中提到的src文件夹。

在这种情况下,当您编写独立的Java程序并且文件在resources文件夹中时,您可以使用 CLassLoader 将文件读取为一条小溪。

这应该是你的代码:

ClassLoader classloader = Thread.currentThread().getContextClassLoader();
InputStream is = classloader.getResourceAsStream("movies-sample.txt");

然后,您将能够逐行阅读is流。

答案 1 :(得分:0)

如果直接从命令行运行程序,则路径必须与当前目录相关。

如果从IDE运行程序,则runnin程序的当前目录取决于IDE及其配置方式。

您可以使用System.getProperty("user.dir")

确定当前目录的内容

无论如何,在应用程序中对路径进行硬编码总是一件坏事,因为您无法确保从何处启动运行。之一:

  • 它是一个用户资源,然后必须以某种方式输入其路径(打开... 在GUI应用程序中)
  • 它是应用程序正常运行所需的资源,它应该以某种方式嵌入到应用程序本身中(查找资源包)
  • 它是一种可选外部资源(例如配置文件,或配置文件中指定的路径),其位置应以某种方式计算。