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

如何在Java中从文本文件中读取字符串?

如何在Java中从文本文件中读取字符串?,java,Java,我有一个问题,因为我不知道如何从一个文件中读取一行(我搜索了,我尝试了,但没有任何效果)。我需要它,因为我想在我未来的项目中使用它(我的游戏中服务器上被阻止的玩家列表)。开始时,我将播放器和禁止的原因保存到HashMap中。然后我必须读取这个昵称,并将其与原因分开,然后检查昵称(CheckPlayerTheBanList方法(String nick)中的参数)是否与我保存HashMap的文件中的名称一致。然后,如果名称(参数)与文件中的名称匹配,则播放器将无法进入服务器。以下是bannedpla

我有一个问题,因为我不知道如何从一个文件中读取一行(我搜索了,我尝试了,但没有任何效果)。我需要它,因为我想在我未来的项目中使用它(我的游戏中服务器上被阻止的玩家列表)。开始时,我将播放器和禁止的原因保存到HashMap中。然后我必须读取这个昵称,并将其与原因分开,然后检查昵称(CheckPlayerTheBanList方法(String nick)中的参数)是否与我保存HashMap的文件中的名称一致。然后,如果名称(参数)与文件中的名称匹配,则播放器将无法进入服务器。以下是bannedplayers.txt文件的内容:

hacker=Cheating!
player=Swearing!
以下是Server.java的一部分:

public HashMap<String, String> bannedPlayersWr = new HashMap<String, String>();

public void start(String nick) {
    banPlayer("player", "Swearing!");
    banPlayer("hacker", "Cheating!");
    boolean player = checkPlayerOnBanMap(nick);

    if (player) {
        System.out.println("You are banned! Your nick: " + nick);
        System.out.println("Reason: " + bannedPlayersWr.get(nick));

        try {
            FileWriter fstream;
            BufferedWriter out;

            fstream = new FileWriter("C:/Users/User/Desktop/bannedplayers.txt");
            out = new BufferedWriter(fstream);

            Iterator<Entry<String, String>> it = bannedPlayersWr.entrySet().iterator();

            while (it.hasNext()) {
                Entry<String, String> pairs = it.next();
                out.write(pairs.toString() + "\n");
            }
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } else {
            System.out.println("Welcome to the server! Your nick: " + nick);
        }
    }

    private void banPlayer(String nick, String reason) {
        bannedPlayersWr.put(nick, reason);
    }
public HashMap bannedPlayersWr=new HashMap();
公共无效开始(字符串){
banPlayer(“player”,“发誓!”);
banPlayer(“黑客”,“作弊!”);
布尔播放器=checkPlayerOnBanMap(尼克);
如果(球员){
System.out.println(“你被禁止了!你的尼克:+nick”);
System.out.println(“原因:+bannedPlayersWr.get(nick));
试一试{
文件写入程序fstream;
缓冲写入输出;
fstream=newfilewriter(“C:/Users/User/Desktop/bannedplayers.txt”);
out=新的缓冲写入程序(fstream);
迭代器it=bannedPlayersWr.entrySet().Iterator();
while(it.hasNext()){
条目对=it.next();
out.write(pairs.toString()+“\n”);
}
out.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}否则{
System.out.println(“欢迎来到服务器!您的尼克:+nick”);
}
}
私人无效banPlayer(字符串尼克、字符串原因){
横幅展示(尼克,原因);
}

一种逐行读取文件并将每一行作为列表元素的简单方法,希望它能帮助您根据需要修改它

private List<String> readFile(String filename)
  throws Exception
{
  String line = null;
  List<String> records = new ArrayList<String>();

  // wrap a BufferedReader around FileReader
  BufferedReader bufferedReader = new BufferedReader(new FileReader(filename));

  // use the readLine method of the BufferedReader to read one line at a time.
  // the readLine method returns null when there is nothing else to read.
  while ((line = bufferedReader.readLine()) != null)
  {
    records.add(line);
  }

  // close the BufferedReader when we're done
  bufferedReader.close();
  return records;
}
私有列表读取文件(字符串文件名)
抛出异常
{
字符串行=null;
列表记录=新的ArrayList();
//将BufferedReader包装在FileReader周围
BufferedReader BufferedReader=新的BufferedReader(新文件读取器(文件名));
//使用BufferedReader的readLine方法一次读取一行。
//当没有其他内容可读取时,readLine方法返回null。
而((line=bufferedReader.readLine())!=null)
{
记录。添加(行);
}
//完成后关闭BufferedReader
bufferedReader.close();
退货记录;
}

一种逐行读取文件并将每一行作为列表元素的简单方法,希望它能帮助您根据需要修改它

private List<String> readFile(String filename)
  throws Exception
{
  String line = null;
  List<String> records = new ArrayList<String>();

  // wrap a BufferedReader around FileReader
  BufferedReader bufferedReader = new BufferedReader(new FileReader(filename));

  // use the readLine method of the BufferedReader to read one line at a time.
  // the readLine method returns null when there is nothing else to read.
  while ((line = bufferedReader.readLine()) != null)
  {
    records.add(line);
  }

  // close the BufferedReader when we're done
  bufferedReader.close();
  return records;
}
私有列表读取文件(字符串文件名)
抛出异常
{
字符串行=null;
列表记录=新的ArrayList();
//将BufferedReader包装在FileReader周围
BufferedReader BufferedReader=新的BufferedReader(新文件读取器(文件名));
//使用BufferedReader的readLine方法一次读取一行。
//当没有其他内容可读取时,readLine方法返回null。
而((line=bufferedReader.readLine())!=null)
{
记录。添加(行);
}
//完成后关闭BufferedReader
bufferedReader.close();
退货记录;
}

好的,我今天早上会试试看,它对我不起作用,但非常感谢您的回答。好的,我今天早上会试试看,它对我不起作用,但非常感谢您的回答。