Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.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_Minecraft - Fatal编程技术网

Java 将文件读取为字符串并

Java 将文件读取为字符串并,java,minecraft,Java,Minecraft,我正在帮助为Minecraft编写一个mod,我决定尝试为我们的员工和赢得比赛的人编写一些特殊的cape。我得到了它,所以它下载了包含播放器UUID的.txt文件,这很有效。我也有它来显示披风刚刚好,当我强迫它 关键词。。。当我强迫它。我是一个Java爱好者,我完全专注于将文件打印成字符串。我见过的其他解决方案将每行打印为字符串,但这不是我想要的。我想将整个文件打印成一个字符串,然后设置一个布尔值,如果它包含与我在代码前面设置的字符串变量相匹配的内容。 打印整个文件不应该是一个问题,因为它是一个

我正在帮助为Minecraft编写一个mod,我决定尝试为我们的员工和赢得比赛的人编写一些特殊的cape。我得到了它,所以它下载了包含播放器UUID的.txt文件,这很有效。我也有它来显示披风刚刚好,当我强迫它

关键词。。。当我强迫它。我是一个Java爱好者,我完全专注于将文件打印成字符串。我见过的其他解决方案将每行打印为字符串,但这不是我想要的。我想将整个文件打印成一个字符串,然后设置一个布尔值,如果它包含与我在代码前面设置的字符串变量相匹配的内容。 打印整个文件不应该是一个问题,因为它是一个非常小的文件

所以我不想要上面的代码是因为我在谷歌上搜索了使用while语句等进行迭代的代码。我假设它会不断地将字符串更改为它正在读取的行,所以如果我使用其中一个示例并检查匹配的UUID,如果它找到匹配的UUID,它会将变量设置为true,然后在转到下一行后立即将其设置为false,对吗

我做出这些假设的原因是,在这一点上,测试某些东西需要很长时间,发现它不工作,然后再次测试,因为我无法在Eclipse中使用测试环境;为了使这项工作,我必须编译我的mod并使用我的帐户登录,因为要获得此代码所需的信息,我需要使用我的帐户登录。我使用的版本有点旧(我是Beta 1.7.3播放器),不支持登录变量。尽管我使用的是Beta 1.7.3,但我们的mod正确地更新了游戏的身份验证,并允许使用Mojang API,所以如果你想知道为什么或者如何在该版本中获取UUID,这就是原因

我之所以在这里发帖,而不是在Minecraft论坛或其他地方发帖,是因为虽然这段代码是针对Minecraft的,但文件检查是一个通用的Java东西,所以希望这是正确的地方。对不起,如果这被认为是重复的其他几个职位,涵盖文件阅读,但我发现我的情况有点不同

如果这里有什么东西写得很愚蠢,或者令人困惑,也很抱歉。我玩了一整晚都没能做到这一点,我已经筋疲力尽了,因此我的校对技能基本上消失了

基本上,我只需要设置一个布尔值,如果UUID与下载的文本文件中的UUID匹配。我的目标是使用字符串变量和.toString().contains(profile.getId().toString())为您可以看到的staff capes文件和竞赛capes文件设置一个布尔值。提前感谢您阅读本文。下面是我用来抓取和下载文件的代码,以防您想看到它

InputStream人员;
输入流竞赛;
文件统计表;
文件列表;
字符串capeInfo=System.getenv(“APPDATA”)+“/.minecraft/capeInfo/”;
试一试{
staffList=新文件(capeInfo+“staff.txt”);
staffList.mkdirs();staffList.createNewFile();
staff=新URL(“https://www.dropbox.com/s/q6f4729i2zu02nz/staff.txt?dl=1)。openStream();
文件.copy(staff,path.get(capeInfo+“staff.txt”)、StandardCopyOption.REPLACE_EXISTING);
竞赛列表=新文件(capeInfo+“contest.txt”);
竞赛列表.mkdirs();竞赛列表.createNewFile();
竞赛=新的URL(“https://www.dropbox.com/s/kvvkfk6emms3qg5/contest.txt?dl=1)。openStream();
文件.copy(contest,path.get(capeInfo+“contest.txt”)、StandardCopyOption.REPLACE_EXISTING);
}捕获(格式错误){
e、 printStackTrace();
返回;
}捕获(IOE异常){
e、 printStackTrace();
返回;
}

您可以使用apache提供的函数readFileToString从文件中获取字符串

import java.io.*;
import java.nio.charset.*;
import org.apache.commons.io.*;

public String readFile(String fileName) throws IOException {
    File file = new File(fileName);
    return FileUtils.readFileToString(file, StandardCharsets.UTF_8);
}

然后检查字符串是否确实包含您要查找的内容

if(staffListContent.contains(...)) {
    yourboolean = true
}
如果您需要更多,请提供一个您真正想要的示例。

Inputstream也可以

 InputStream is = new FileInputStream("YourfileName");
        BufferedReader buf = new BufferedReader(new InputStreamReader(is));

        String line = buf.readLine();
        StringBuilder sb = new StringBuilder();

        while(line != null){
            sb.append(line).append("\n");
            line = buf.readLine();
        }

        String fileAsString = sb.toString();
        System.out.println(fileAsString);
        ```

您的输入和预期输出是什么。举一个简单的例子,我还想说,谁把我的问题标记为与另一个问题相似,谁就错了,谁没有读我的问题。他们使用的代码与我透露的代码完全一样。我现在明白了,它被隐藏起来并得到了回答,但我讨厌我不得不像建议的那样提出一个全新的问题来回避这个问题,而不是说类似的问题没有帮助。嘿,这看起来很有用。如果我需要把我的绳子分成几行,我会记住的,谢谢。我忘了StringBuilder是个东西,就是这个,谢谢。我只是用这个将内容写到staffUUIDs和contestituuids。布尔hastaffcape=staffUUIDs.toString().contains(profile.getId().toString());boolean HasQuesticCape=QuesticUUIDS.toString().contains(profile.getId().toString());
 InputStream is = new FileInputStream("YourfileName");
        BufferedReader buf = new BufferedReader(new InputStreamReader(is));

        String line = buf.readLine();
        StringBuilder sb = new StringBuilder();

        while(line != null){
            sb.append(line).append("\n");
            line = buf.readLine();
        }

        String fileAsString = sb.toString();
        System.out.println(fileAsString);
        ```