2017-06-05 47 views
0

我是java的初学者,正在做一个练习,我需要链接一段文本文件以供我的代码读取。将我的文本文件链接到我的java代码

这里是代码:

import javax.swing.*; 
import java.util.*; 
import java.io.*; 

public class Java116 { 

public static void main(String[] args) throws IOException { 

    String[] namn   = new String[100]; 
    double[] perMån  = new double[100]; 
    double[] perMinDag  = new double[100]; 
    double[] perMinÖvr  = new double[100]; 
    double[] friaDag  = new double[100]; 
    double[] friÖvr  = new double[100]; 

    Scanner fil = new Scanner(new File("mobildata.txt")); 
    int n = 0; 

    while (fil.hasNext()) { 
     namn [n] = fil.next(); 
     perMån[n]  = fil.nextDouble(); 
     perMinDag[n] = fil.nextDouble(); 
     perMinÖvr[n] = fil.nextDouble(); 
     friaDag[n]  = fil.nextDouble(); 
     friÖvr[n]  = fil.nextDouble(); 
     n++; 
    } 

    while (true) { 
     String s =JOptionPane.showInputDialog("Hur många minuter ringer du per månad \n" + 
     "Under dagrid respettive övrig tid? "); 

     if (s == null) 
      break; 

     Scanner input = new Scanner (s); 
     double minDag = input.nextDouble(); 
     double minÖvr = input.nextDouble(); 
     double billigast = Double.MAX_VALUE; 
     int index = 0; 
     for (int i=0; i<n; i++) { 
      double antalDag = Math.max(minDag-friaDag[i], 0); 
      double antalÖvr = Math.max(minÖvr-friÖvr[i], 0); 
      double kostnad = perMån[i] + antalDag*perMinDag[i] + antalÖvr*perMinÖvr[i]; 
      if (kostnad < billigast) { 
       billigast = kostnad; 
       index = i; 
      } 
     } 
     String resultat = String. format("%.2f", billigast); 
     JOptionPane.showMessageDialog(null, 
       namn[index]+ "är billigast.\n" +"kostnad: " + resultat + "kr/månad"); 
    } 

} 
} 

我得到的错误是:

Exception in thread "main" java.io.FileNotFoundException: mobildata.txt (The 
system cannot find the file specified) 
at java.io.FileInputStream.open0(Native Method) 
at java.io.FileInputStream.open(FileInputStream.java:195) 
at java.io.FileInputStream.<init>(FileInputStream.java:138) 
at java.util.Scanner.<init>(Scanner.java:611) 
at Java116.main(Java116.java:16) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) 

我已经将文本文件添加到我的所有其他文件使用的是IntelliJ

时所在的Java文件

非常感谢提前!

回答

0

我在使用Intellij时经常遇到这个问题 - 你检查过文件的确切路径吗?你使用绝对路径还是相对路径?当您不在Intellij中运行时,此程序是否运行? 尝试把确切的路径在这条线:

Scanner fil = new Scanner(new File("mobildata.txt")); 

请回答这些问题的话,我或许可以进一步帮助。

+0

嗨,对不起,最近的答案!我不确定什么是绝对路径或相对路径,除了intellij之外,我还没有尝试过任何其他程序,因为我没有安装任何其他程序。你建议我这样做: 扫描仪fil =新扫描仪(新文件(“c:\ javamapp \ mobildata.txt”)? 谢谢你的帮助! – Biogrid

+0

你可以在你的桌面上运行一个java程序/ laptop。在你的桌面上为你的项目制作一个目录,并在这里存储你的文本文件,然后使用javac Java116.java在文件夹中运行应用程序 - 完成后,运行java java116 ...然后请告诉我如果这个工程 – iiiiiii

+0

嗨,我很抱歉,但不知道如何做到这一点:S。 我不太擅长这个东西,因为你可能会注意到:( – Biogrid

0

该应用程序可能正在寻找错误的目录。在IntelliJ IDEA中,确保项目工具窗口已打开(查看 - >工具窗口 - >项目)。在项目窗口中,选择“项目文件”(见截图)。

Screenshot

然后,您将看到您的mobildata.txt文件的位置。将其移动(拖放)到顶层项目文件夹,这可能是程序运行时的当前工作目录。重新运行,看看这是否修复它。

+0

嗨Klitos,谢谢你的回答,我似乎找不到“项目文件”。你可以发一个截图吗? – Biogrid

+0

@Biogrid截图添加 –

相关问题