标签: bufferedreader

BufferedReader和BufferedInputStream之间的区别

之间有什么区别BufferedReader,BufferedInputStreamScanner在Java?BufferedReader读取文本并BufferedInputStream读取byte.除此之外有什么区别吗?

java io bufferedreader java.util.scanner

21
推荐指数
2
解决办法
2万
查看次数

使用BufferedReader读取所有行

我想使用BufferedReader在控制台中输入多行文本,当我点击"Enter"以查找整个文本长度的总和时.问题是,我似乎进入了一个无限循环,当我按下"Enter"时,程序没有结束.我的代码如下:

InputStreamReader instream = new InputStreamReader(System.in);
BufferedReader buffer = new BufferedReader(instream);

    line= buffer.readLine();

    while (line!=null){
        length = length + line.length();
        line= buffer.readLine();
    }
Run Code Online (Sandbox Code Playgroud)

你能告诉我我做错了什么吗?

java infinite-loop bufferedreader inputstreamreader

21
推荐指数
3
解决办法
6万
查看次数

Java使用扫描仪输入密钥按下

我正在使用Java编程.
我正在尝试编写代码,可以识别用户是否在基于控制台的程序中按下回车键.

我怎么能用java做到这一点.有人告诉我,这可以使用扫描仪或缓冲输入阅读器完成.我不明白(或知道如何使用)缓冲输入阅读器.

我尝试使用扫描仪这样做,但按两次输入后程序终止,它不起作用

    Scanner readinput = new Scanner(System.in);

    String enterkey = "Hola";
    System.out.print(enterkey);


    enterkey = readinput.nextLine();
     System.out.print(enterkey);

    if(enterkey == ""){

        System.out.println("It works!");
Run Code Online (Sandbox Code Playgroud)

谢谢

- 编辑 - 以下代码使用equals字符串的方法而不是==

    Scanner readinput = new Scanner(System.in);

    String enterkey = "Hola";
    System.out.print(enterkey);


    enterkey = readinput.nextLine();
     System.out.print(enterkey);

    if(enterkey.equals("")){

        System.out.println("It works!");
Run Code Online (Sandbox Code Playgroud)

如何做到这一点,以及使用缓冲输入阅读器做到这一点的优点是什么?

java console input bufferedreader java.util.scanner

20
推荐指数
1
解决办法
10万
查看次数

Java - 读取文件夹中的所有.txt文件

比方说,我有一个文件夹maps,里面有mapsmap1.txt,map2.txt,map3.txt.如何使用Java和BufferReader读取.txt文件夹maps中的所有文件(如果可能的话)?

java bufferedreader

19
推荐指数
3
解决办法
7万
查看次数

在Java中逐行读取和写入大文件的最快方法

我一直在寻找最快的方法来读取和写入具有有限内存(约64MB)的java中的大文件(0.5 - 1 GB).文件中的每一行代表一条记录,所以我需要逐行获取它们.该文件是普通文本文件.

我尝试过BufferedReader和BufferedWriter但它似乎不是最好的选择.读取和写入大小为0.5 GB的文件大约需要35秒,只读取没有处理的写入.我认为这里的瓶颈是写作,因为单独阅读大约需要10秒钟.

我试图读取字节数组,但是在每个读取的数组中搜索行需要更多时间.

有什么建议吗?谢谢

java performance file-io bufferedreader

19
推荐指数
2
解决办法
6万
查看次数

正确地在while循环中使用BufferedReader.readLine()

所以我在将一个文本文件读入我的程序时遇到了问题.这是代码:

     try{
        InputStream fis=new FileInputStream(targetsFile);
        BufferedReader br=new BufferedReader(new InputStreamReader(fis));

        //while(br.readLine()!=null){
        for(int i=0;i<100;i++){
            String[] words=br.readLine().split(" ");
            int targetX=Integer.parseInt(words[0]);
            int targetY=Integer.parseInt(words[1]);
            int targetW=Integer.parseInt(words[2]);
            int targetH=Integer.parseInt(words[3]);
            int targetHits=Integer.parseInt(words[4]);
            Target a=new Target(targetX, targetY, targetW, targetH, targetHits);
            targets.add(a);
        }
        br.close();
    }
    catch(Exception e){
        System.err.println("Error: Target File Cannot Be Read");
    }
Run Code Online (Sandbox Code Playgroud)

我正在读取的文件是100行参数.如果我使用for循环它完美地工作.如果我使用while语句(for循环上面注释掉的那个),它会在50处停止.用户可能会运行带有任意行数的文件的程序,因此我当前的for循环实现赢了工作.

为什么线路while(br.readLine()!=null)停在50?我检查了文本文件,没有任何东西可以挂起来.

当我使用while循环时,我没有从try-catch中得到任何错误,所以我很难过.有人有主意吗?

java bufferedreader

19
推荐指数
5
解决办法
13万
查看次数

我可以偷看BufferedReader吗?

有没有办法检查BufferedReader对象中是否有东西要读?像C++这样的东西cin.peek().谢谢.

java peek bufferedreader

18
推荐指数
3
解决办法
2万
查看次数

从资源目录中读取文件会引发FileNotFoundException

我正在尝试阅读一些文字文件中的一些单词,我想用于我正在写的文字游戏.此列表存储在assets目录中,是一个txt文件.但是,每当我尝试打开它时,它都会引发异常.

List<String>wordList = new ArrayList<String>();
    BufferedReader br = null;
    try {
        br = new BufferedReader(new InputStreamReader(getAssets().open("wordlist.txt"))); //throwing a FileNotFoundException?
        String word;
        while((word=br.readLine()) != null)
        wordList.add(word); //break txt file into different words, add to wordList
    }
        catch(IOException e) {
            e.printStackTrace();
        }
        finally {
            try {
                br.close(); //stop reading
            }
            catch(IOException ex) {
                ex.printStackTrace();
            }
        }
        String[]words = new String[wordList.size()];
        wordList.toArray(words); //make array of wordList

        for(int i=0;i<words.length; i++)
            Log.i("Brian", words[i]); //print out words in array
}
Run Code Online (Sandbox Code Playgroud)

这是错误日志,如果有任何帮助:

02-22 20:49:47.646: WARN/System.err(2351): java.io.FileNotFoundException: wordlist.txt …
Run Code Online (Sandbox Code Playgroud)

android filenotfoundexception bufferedreader android-assets

18
推荐指数
1
解决办法
3万
查看次数

Java中的自动检测字符编码

似乎是一个相当热门的问题,但我还没有找到解决方案; 也许是因为它有这么口味.虽然这是.我正在尝试阅读一些逗号分隔文件(偶尔分隔符可能比逗号更独特,但逗号现在就足够了).

这些文件应该在整个行业标准化,但最近我们已经看到了许多不同类型的字符集文件.我希望能够设置一个BufferedReader来弥补这一点.

这样做的标准方法是什么,并检测它是否成功?

我对这种方法的第一个想法是循环遍历字符集simple-> complex,直到我可以无异常地读取文件.虽然不完全理想......

感谢您的关注.

java io encoding bufferedreader

18
推荐指数
1
解决办法
2万
查看次数

从文件位置运行Java中的.exe文件

我必须从我的Java程序中打开一个.exe文件.所以我尝试了第一个代码.

Process process = runtime.exec("c:\\program files\\test\\test.exe");
Run Code Online (Sandbox Code Playgroud)

但是我收到了一些错误.然后我发现exe必须从c:// program files/test /那个位置启动,然后它会打开而没有错误.所以我决定编写一个.bat文件并执行,以便它将cd到该位置并执行.exe文件.

以下是我的代码:

BufferedWriter fileOut;

String itsFileLocation = "c:\\program files\\test\\"
    System.out.println(itsFileLocation);
    try {
     fileOut = new BufferedWriter(new FileWriter("C:\\test.bat"));
     fileOut.write("cd\\"+"\n");
     fileOut.write("cd "+ itsFileLocation +"\n");
     fileOut.write("test.exe"+"\n");
     fileOut.write("exit"+"\n");
     
     fileOut.close(); // Close the output stream after all output is done.
    } catch (IOException e1) {
     e1.printStackTrace();
    } // Create the Buffered Writer object to write to a file called filename.txt
    Runtime runtime = Runtime.getRuntime();
    try {
     Process process =runtime.exec("cmd /c start C:\\test.bat");
    } catch (IOException e) …
Run Code Online (Sandbox Code Playgroud)

java windows exe batch-file bufferedreader

18
推荐指数
4
解决办法
8万
查看次数