有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将字符添加到BufferedReader中

我想创建模拟测试,将文件值读入JUnit测试

我用这个代码来读文本代码

BufferedReader cpuReader = new BufferedReader(new InputStreamReader(new FileInputStream("/opt/test")));

为了创建JUnit测试,我需要添加一些虚拟数据,这些数据需要保存到Java缓冲区中。举个例子(这是完全错误的),我想这样做:

BufferedReader cpuReader = new BufferedReader():
cpuReader.addText("Some text");
// process further this data

当我初始化对象BufferedReader()时,你能告诉我在变量cpuReader中添加一些文本的正确方法吗


共 (3) 个答案

  1. # 1 楼答案

    另一种方法是将BufferedReader与PipedReader连接起来,如下所示:

     PipedReader pipeR = new PipedReader();
     BufferedReader br = new BufferedReader(pipeR);
    

    然后将PipedWriter与PipedWriter连接,如:

      // create a new Piped writer and reader
      PipedWriter writer = new PipedWriter();
    
      // connect the reader and the writer
      pipeR.connect(writer);
    

    现在(以动态方式),无论使用writer-write方法写入什么数据,都可以通过BufferedReader读取

  2. # 2 楼答案

    你应该这样做:

    String str = "The string you want for your output";
    BuffereReader r = new BufferedReader(new StringReader(str))
    

    尽量不要模仿文件,这有很多缺点

  3. # 3 楼答案

    下面是一个使用^{}的示例:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.StringReader;
    
    public class SimpleTest {
    
        public static void main(String[] args) {
    
            // Create a BufferedReader based on a string
    
            String s = "This is my input\nIt has two lines\n";
            StringReader strReader = new StringReader(s);
            BufferedReader cpuReader = new BufferedReader(strReader);
    
            // Use the BufferedReader, regardless of its source.
    
            String line;
            try {
                while ((line = cpuReader.readLine()) != null) {
                    System.out.println(line);
                }
            } catch (IOException e) {
    
                e.printStackTrace();
            }
        }
    
    }
    

    请注意,一旦创建了cupReader,就可以像以前一样使用它,不管它是基于StringReader