文本文件编号持有人不起作用,我该如何解决?

时间:2015-12-26 14:59:02

标签: java eclipse file

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.Scanner;

public class NC {

static Scanner in = new Scanner(System.in);

public static void main(String[] args){

    File FileNumberChanger = new File("C:/Users/Michael/Desktop/FileNumberChanger.txt");

    try{

        FileWriter fw = new FileWriter(FileNumberChanger);
        FileReader fr = new FileReader(FileNumberChanger);
        BufferedWriter bw = new BufferedWriter(fw);
        BufferedReader br = new BufferedReader(fr);

        String numVText = br.readLine();
        int numVInt = 0;



        **if(numVText.equals("0")){ // Doesn't work
            numVInt = 0;
        }**
        if(numVText.equals("1")){
            numVInt = 1;
        }
        if(numVText.equals("2")){
            numVInt = 2;
        }
        if(numVText.equals("3")){
            numVInt = 3;
        }
        if(numVText.equals("4")){
            numVInt = 4;
        }
        if(numVText.equals("5")){
            numVInt = 5;
        }
        if(numVText.equals("6")){
            numVInt = 6;
        }
        if(numVText.equals("7")){
            numVInt = 7;
        }
        if(numVText.equals("8")){
            numVInt = 8;
        }
        if(numVText.equals("9")){
            numVInt = 9;
        }
        if(numVText.equals("10")){
            numVInt = 10;
        }
        if(numVText.equals("11")){
            numVInt = 11;
        }
        if(numVText.equals("12")){
            numVInt = 12;
        }
        if(numVText.equals("13")){
            numVInt = 13;
        }
        if(numVText.equals("14")){
            numVInt = 14;
        }
        if(numVText.equals("15")){
            numVInt = 15;
        }
        if(numVText.equals("16")){
            numVInt = 16;
        }
        if(numVText.equals("17")){
            numVInt = 17;
        }
        if(numVText.equals("18")){
            numVInt = 18;
        }
        if(numVText.equals("19")){
            numVInt = 19;
        }
        if(numVText.equals("20")){
            numVInt = 20;
        }
        if(numVText.equals("21")){
            numVInt = 21;
        }
        if(numVText.equals("22")){
            numVInt = 22;
        }
        if(numVText.equals("23")){
            numVInt = 23;
        }
        if(numVText.equals("24")){
            numVInt = 24;
        }
        if(numVText.equals("25")){
            numVInt = 25;
        }
        if(numVText.equals("26")){
            numVInt = 26;
        }
        if(numVText.equals("27")){
            numVInt = 27;
        }
        if(numVText.equals("28")){
            numVInt = 28;
        }
        if(numVText.equals("29")){
            numVInt = 29;
        }
        if(numVText.equals("30")){
            numVInt = 30;
        }
        if(numVText.equals("31")){
            numVInt = 31;
        }
        if(numVText.equals("32")){
            numVInt = 32;
        }
        if(numVText.equals("33")){
            numVInt = 33;
        }
        if(numVText.equals("34")){
            numVInt = 34;
        }
        if(numVText.equals("35")){
            numVInt = 35;
        }
        if(numVText.equals("36")){
            numVInt = 36;
        }
        if(numVText.equals("37")){
            numVInt = 37;
        }
        if(numVText.equals("38")){
            numVInt = 38;
        }
        if(numVText.equals("39")){
            numVInt = 39;
        }
        if(numVText.equals("40")){
            numVInt = 40;
        }
        if(numVText.equals("41")){
            numVInt = 41;
        }
        if(numVText.equals("42")){
            numVInt = 42;
        }
        if(numVText.equals("43")){
            numVInt = 43;
        }
        if(numVText.equals("44")){
            numVInt = 44;
        }
        if(numVText.equals("45")){
            numVInt = 45;
        }
        if(numVText.equals("46")){
            numVInt = 46;
        }
        if(numVText.equals("47")){
            numVInt = 47;
        }
        if(numVText.equals("48")){
            numVInt = 48;
        }
        if(numVText.equals("49")){
            numVInt = 49;
        }
        if(numVText.equals("50")){
            numVInt = 50;
        }
        if(numVText.equals("51")){
            numVInt = 51;
        }
        if(numVText.equals("52")){
            numVInt = 52;
        }
        if(numVText.equals("53")){
            numVInt = 53;
        }
        if(numVText.equals("54")){
            numVInt = 54;
        }
        if(numVText.equals("55")){
            numVInt = 55;
        }
        if(numVText.equals("56")){
            numVInt = 56;
        }
        if(numVText.equals("57")){
            numVInt = 57;
        }
        if(numVText.equals("58")){
            numVInt = 58;
        }
        if(numVText.equals("59")){
            numVInt = 59;
        }
        if(numVText.equals("60")){
            numVInt = 60;
        }
        if(numVText.equals("61")){
            numVInt = 61;
        }
        if(numVText.equals("62")){
            numVInt = 62;
        }
        if(numVText.equals("63")){
            numVInt = 63;
        }
        if(numVText.equals("64")){
            numVInt = 64;
        }
        if(numVText.equals("65")){
            numVInt = 65;
        }
        if(numVText.equals("66")){
            numVInt = 66;
        }
        if(numVText.equals("67")){
            numVInt = 67;
        }
        if(numVText.equals("68")){
            numVInt = 68;
        }
        if(numVText.equals("69")){
            numVInt = 69;
        }
        if(numVText.equals("70")){
            numVInt = 70;
        }
        if(numVText.equals("71")){
            numVInt = 71;
        }
        if(numVText.equals("72")){
            numVInt = 72;
        }
        if(numVText.equals("73")){
            numVInt = 73;
        }
        if(numVText.equals("74")){
            numVInt = 74;
        }
        if(numVText.equals("75")){
            numVInt = 75;
        }
        if(numVText.equals("76")){
            numVInt = 76;
        }
        if(numVText.equals("77")){
            numVInt = 77;
        }
        if(numVText.equals("78")){
            numVInt = 78;
        }
        if(numVText.equals("79")){
            numVInt = 79;
        }
        if(numVText.equals("80")){
            numVInt = 80;
        }
        if(numVText.equals("81")){
            numVInt = 81;
        }
        if(numVText.equals("82")){
            numVInt = 82;
        }
        if(numVText.equals("83")){
            numVInt = 83;
        }
        if(numVText.equals("84")){
            numVInt = 84;
        }
        if(numVText.equals("85")){
            numVInt = 85;
        }
        if(numVText.equals("86")){
            numVInt = 86;
        }
        if(numVText.equals("87")){
            numVInt = 87;
        }
        if(numVText.equals("88")){
            numVInt = 88;
        }
        if(numVText.equals("89")){
            numVInt = 89;
        }
        if(numVText.equals("90")){
            numVInt = 90;
        }
        if(numVText.equals("91")){
            numVInt = 91;
        }
        if(numVText.equals("92")){
            numVInt = 92;
        }
        if(numVText.equals("93")){
            numVInt = 93;
        }
        if(numVText.equals("94")){
            numVInt = 94;
        }
        if(numVText.equals("95")){
            numVInt = 95;
        }
        if(numVText.equals("96")){
            numVInt = 96;
        }
        if(numVText.equals("97")){
            numVInt = 97;
        }
        if(numVText.equals("98")){
            numVInt = 98;
        }
        if(numVText.equals("99")){
            numVInt = 99;
        }
        if(numVText.equals("100")){
            numVInt = 100;
        }

        System.out.println(numVInt);

        String usersFun = in.next();
        int usersInt = in.nextInt();

        if(usersFun.equals("set")){
            numVInt = usersInt;
        }
        if(usersFun.equals("add")){
            numVInt += usersInt;
        }
        if(usersFun.equals("take")){
            numVInt -= usersInt;
        }

        if(numVInt == 0){
            numVText = "0";
        }
        if(numVInt == 1){
            numVText = "1";
        }
        if(numVInt == 2){
            numVText = "2";
        }
        if(numVInt == 3){
            numVText = "3";
        }
        if(numVInt == 4){
            numVText = "4";
        }
        if(numVInt == 5){
            numVText = "5";
        }
        if(numVInt == 6){
            numVText = "6";
        }
        if(numVInt == 7){
            numVText = "7";
        }
        if(numVInt == 8){
            numVText = "8";
        }
        if(numVInt == 9){
            numVText = "9";
        }
        if(numVInt == 10){
            numVText = "10";
        }
        if(numVInt == 11){
            numVText = "11";
        }
        if(numVInt == 12){
            numVText = "12";
        }
        if(numVInt == 13){
            numVText = "13";
        }
        if(numVInt == 14){
            numVText = "14";
        }
        if(numVInt == 15){
            numVText = "15";
        }
        if(numVInt == 16){
            numVText = "16";
        }
        if(numVInt == 17){
            numVText = "17";
        }
        if(numVInt == 18){
            numVText = "18";
        }
        if(numVInt == 19){
            numVText = "19";
        }
        if(numVInt == 20){
            numVText = "20";
        }
        if(numVInt == 21){
            numVText = "21";
        }
        if(numVInt == 22){
            numVText = "22";
        }
        if(numVInt == 23){
            numVText = "23";
        }
        if(numVInt == 24){
            numVText = "24";
        }
        if(numVInt == 25){
            numVText = "25";
        }
        if(numVInt == 26){
            numVText = "26";
        }
        if(numVInt == 27){
            numVText = "27";
        }
        if(numVInt == 28){
            numVText = "28";
        }
        if(numVInt == 29){
            numVText = "29";
        }
        if(numVInt == 30){
            numVText = "30";
        }
        if(numVInt == 31){
            numVText = "31";
        }
        if(numVInt == 32){
            numVText = "32";
        }
        if(numVInt == 33){
            numVText = "33";
        }
        if(numVInt == 34){
            numVText = "34";
        }
        if(numVInt == 35){
            numVText = "35";
        }
        if(numVInt == 36){
            numVText = "36";
        }
        if(numVInt == 37){
            numVText = "37";
        }
        if(numVInt == 38){
            numVText = "38";
        }
        if(numVInt == 39){
            numVText = "39";
        }
        if(numVInt == 40){
            numVText = "40";
        }
        if(numVInt == 41){
            numVText = "41";
        }
        if(numVInt == 42){
            numVText = "42";
        }
        if(numVInt == 43){
            numVText = "43";
        }
        if(numVInt == 44){
            numVText = "44";
        }
        if(numVInt == 45){
            numVText = "45";
        }
        if(numVInt == 46){
            numVText = "46";
        }
        if(numVInt == 47){
            numVText = "47";
        }
        if(numVInt == 48){
            numVText = "48";
        }
        if(numVInt == 49){
            numVText = "49";
        }
        if(numVInt == 50){
            numVText = "50";
        }
        if(numVInt == 51){
            numVText = "51";
        }
        if(numVInt == 52){
            numVText = "52";
        }
        if(numVInt == 53){
            numVText = "53";
        }
        if(numVInt == 54){
            numVText = "54";
        }
        if(numVInt == 55){
            numVText = "55";
        }
        if(numVInt == 56){
            numVText = "56";
        }
        if(numVInt == 57){
            numVText = "57";
        }
        if(numVInt == 58){
            numVText = "58";
        }
        if(numVInt == 59){
            numVText = "59";
        }
        if(numVInt == 60){
            numVText = "60";
        }
        if(numVInt == 61){
            numVText = "61";
        }
        if(numVInt == 62){
            numVText = "62";
        }
        if(numVInt == 63){
            numVText = "63";
        }
        if(numVInt == 64){
            numVText = "64";
        }
        if(numVInt == 65){
            numVText = "65";
        }
        if(numVInt == 66){
            numVText = "66";
        }
        if(numVInt == 67){
            numVText = "67";
        }
        if(numVInt == 68){
            numVText = "68";
        }
        if(numVInt == 69){
            numVText = "69";
        }
        if(numVInt == 70){
            numVText = "70";
        }
        if(numVInt == 71){
            numVText = "71";
        }
        if(numVInt == 72){
            numVText = "72";
        }
        if(numVInt == 73){
            numVText = "73";
        }
        if(numVInt == 74){
            numVText = "74";
        }
        if(numVInt == 75){
            numVText = "75";
        }
        if(numVInt == 76){
            numVText = "76";
        }
        if(numVInt == 77){
            numVText = "77";
        }
        if(numVInt == 78){
            numVText = "78";
        }
        if(numVInt == 79){
            numVText = "79";
        }
        if(numVInt == 80){
            numVText = "80";
        }
        if(numVInt == 81){
            numVText = "81";
        }
        if(numVInt == 82){
            numVText = "82";
        }
        if(numVInt == 83){
            numVText = "83";
        }
        if(numVInt == 84){
            numVText = "84";
        }
        if(numVInt == 85){
            numVText = "85";
        }
        if(numVInt == 86){
            numVText = "86";
        }
        if(numVInt == 87){
            numVText = "87";
        }
        if(numVInt == 88){
            numVText = "88";
        }
        if(numVInt == 89){
            numVText = "89";
        }
        if(numVInt == 90){
            numVText = "90";
        }
        if(numVInt == 91){
            numVText = "91";
        }
        if(numVInt == 92){
            numVText = "92";
        }
        if(numVInt == 93){
            numVText = "93";
        }
        if(numVInt == 94){
            numVText = "94";
        }
        if(numVInt == 95){
            numVText = "95";
        }
        if(numVInt == 96){
            numVText = "96";
        }
        if(numVInt == 97){
            numVText = "97";
        }
        if(numVInt == 98){
            numVText = "98";
        }
        if(numVInt == 99){
            numVText = "99";
        }
        if(numVInt == 100){
            numVText = "100";
        }
        if(numVInt > 100){
            numVText = "100";
        }




        bw.close();
        br.close();
        fw.close();
        fr.close();

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



    }

为什么这不起作用? 我试图从文件中获取带有数字值的字符串(通过说出字符串ex =" 0"),然后查看值并将它们转换为整数。我不知道如何解决这个问题。请帮忙。

顺便说一下,我使用eclipse,如果它与它有任何关系。问题是它从这里捕获了一个例外:

if(numVText.equals("0")){
                numVInt = 0;
            }

1 个答案:

答案 0 :(得分:1)

而不是使用可怕数量的if语句,而是使用以下内容:

int result = Integer.parseInt(inputString);

要转换回来,请使用:

String decimalNumber = Integer.toString(someInt);

你如何包含你的代码有什么问题:我只能假设你得到java.lang.NullPointerException。在这种情况下,变量numVIntnull - 您尝试在其上调用方法,但它是null,因此您会遇到此异常。

来自BufferedReader.readLine()的官方文档:

  

读取一行文字。一条线被认为是任何一条线终止的   换行符(\n),回车符(\r)或回车符   然后立即换行。

     

返回:包含的字符串   该行的内容,不包括任何行终止字符,   如果已到达流的末尾,则为null

     

抛出: IOException - 如果发生I / O错误

因此变量为null表示已到达文件末尾:您应该在继续之前检查null值,如下所示(完全修复的代码,它编译,但未经测试):

import java.io.*;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

public class NC
{

    private static final Scanner in = new Scanner(System.in);

    public static void main(String[] args) throws Exception // You might need to handle exceptions better
    {
        File fileNumberChanger = new File("C:/Users/Michael/Desktop/FileNumberChanger.txt");

        int numVInt = -1;

        try(FileInputStream fis = new FileInputStream(fileNumberChanger);
            InputStreamReader isr = new InputStreamReader(fis, StandardCharsets.UTF_8);
            BufferedReader br = new BufferedReader(isr))
        {
            String gottenLine = br.readLine();
            if (gottenLine == null)
            {
                System.err.println("File does not contain a single line!");
                return;
            }
            numVInt = Integer.parseInt(gottenLine); // Might throw NumberFormatException if number is in invalid format
            System.out.println("Current number: " + numVInt);

            String usersFun = in.next();
            int usersInt = in.nextInt();

            switch(usersFun)
            {
                case "set":
                    numVInt = usersInt;
                    break;
                case "add":
                    numVInt += usersInt;
                    break;
                case "take":
                    numVInt -= usersInt;
                default:
                    System.err.println("Invalid user command!");
                    return; // End program
            }
            System.out.println("New number: " + numVInt);
        }

        try(FileOutputStream fos = new FileOutputStream(fileNumberChanger);
            OutputStreamWriter osw = new OutputStreamWriter(fos, StandardCharsets.UTF_8);
            BufferedWriter bw = new BufferedWriter(osw))
        {
            // This will completely overwrite the file!
            bw.write(Integer.toString(numVInt));
        }
    }
}