Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解密时出现空指针异常_Java_Loops_Exception_Encryption - Fatal编程技术网

Java 解密时出现空指针异常

Java 解密时出现空指针异常,java,loops,exception,encryption,Java,Loops,Exception,Encryption,我正在使用一个名为decrypt的函数来使用bufferedreader对文件中的加密字符串进行解密,但问题是,当我使用该函数时,它会抛出NullPointerException,有人能帮我吗?提前谢谢 这是我的功能: public String Decrypt (String Word,int key) { String result=""; for (int i=0;i<Word.length();i++) { result+=(char)(Wor

我正在使用一个名为decrypt的函数来使用bufferedreader对文件中的加密字符串进行解密,但问题是,当我使用该函数时,它会抛出NullPointerException,有人能帮我吗?提前谢谢

这是我的功能:

public  String Decrypt (String Word,int key)
{
   String result="";
   for (int i=0;i<Word.length();i++)
    {
        result+=(char)(Word.charAt(i)-key);
    }
   return result;
}
这是不干净的:

while((line=Decrypt(out.readLine(), 30)) !=null)
我们知道,当BufferedReader按照到达流的末尾时,readline将返回
null
,但您的代码没有正确处理此问题,即您的Decrypt方法将调用Word参数上的
length()
方法,无论它是否为null。我建议您不要试图使代码过于简短,而是将读者的阅读与对其进行操作分开。e、 g

while((line= out.readLine) !=null) {
    line = Decrypt(line, 30);
    output.append("Your String is: \n"+ line);
}
作为旁白,你需要学习和使用。变量名都应该以小写字母开头,而类名应该以大写字母开头。学习这一点并遵循这一点可以让我们更好地理解您的代码,也可以让您更好地理解其他人的代码


旁白2:不要将异常的catch块留空,因为这相当于闭着眼睛开车。至少打印出堆栈跟踪,并明确检查

您的空捕获块不是一个好迹象。但是out为null表示文件的路径不正确。我检查了文件的路径,100%确定它是正确的,您认为我的异常为空是主要问题吗?如果是,我可以在挡块内添加什么?(抱歉,因为我是java初学者)我还添加了文件的完整路径,没有可用的副本。根据您的示例,我编辑了我的代码,但我猜问题出在for循环中的decrypt函数中(编译器在其异常处停止)@梅娜:请澄清,因为我不知道你上面的评论是什么意思。也许您想编辑您的问题并为我们更新它。当我在控制台中按下时,异常将使用编译器(Netbeans)自动指定,它将返回到我的解密function@menna: ..... 好啊但我还是不清楚,你有什么问题吗?
while((line= out.readLine) !=null) {
    line = Decrypt(line, 30);
    output.append("Your String is: \n"+ line);
}