java - 有没有一种简单的方法可以在文件输入期间保留java中的尾随制表符?

标签 java whitespace bufferedreader preserve

BufferedReader 和 Scanner 的 nextLine() 似乎通过删除所有尾随空白来提供太多帮助。我需要保留列,目前允许为空值,但犹豫是否使用 next() 或 getBytes() 识别制表符循环遍历每一行,因为可能有数百万行和数百列。

我在阅读行时缺少这两种方法,是否有其他方法? 在这些方法中是否可以设置标志或任何其他选项来保留空格? 我是否只是强制用户使用非空白字段? 我并不是唯一一个尝试保留空白的人,不是吗?

我在从文件读取时遇到问题。我有这个代码

import java.lang.*;
import java.util.*;
import java.io.*;

public class stringTest
{
   public static void main (String[] args) throws IOException
   {
        BufferedReader br = new BufferedReader(new FileReader("wtf.txt"));
        String l = br.readLine();
        while (l != null) {
            System.out.println(l.split("\t").length);
            l = br.readLine();
        }
   }
}

wtf.txt包含

h\tu\tr\tf\n
o\tm\tg\t\t\n

输出是

4
3

此外,如果我在所有选项卡的任何地方添加一行,即

h\tu\tr\tf\n
\t\t\t\t\t\n
o\tm\tg\t\t\n

输出为

4
0
3

我不认为这是拆分的问题,因为如果我使用代码

String s = "w\tt\tf\t\t\n";
System.out.println(""+s.split("\t").length);
String s1 = "w\tt\tf\tx\n";
System.out.println(""+s1.split("\t").length);
String s2 = "\t\t\t\t\t\t\n";
System.out.println(""+s2.split("\t").length);

输出为

5
4
6

最佳答案

BufferedReader.readLine() 确实保留空白。

关于java - 有没有一种简单的方法可以在文件输入期间保留java中的尾随制表符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7372510/

相关文章:

java - 我应该如何有效地从日志消息流中提取堆栈跟踪?

java - BufferedReader可以在Java中自动关闭吗

c# - 忽略所有空格,包括 GitHub 中的换行符

c - 有没有办法在 scanf() 函数中强制输入空格?

java - 读取 BufferedReader

Java - 扫描仪在一定数量的行后不扫描

java - 无法检查元素的状态

java - java - 如何将xml Element及其子节点转换为Java中的String?

java - spring-如果使用注解需要在xml中指定bean吗

bash - 在 bash 中遍历文件时保留空格