在Java中从文件输入数据时如何阻止扫描仪更改字节?

发布于 2025-01-08 07:26:27 字数 368 浏览 0 评论 0原文

我正在使用 Java 中的 Scanner 实用程序从文件中输入数据,如下所示:

        File file = new File("mazes.txt");
        Scanner scan = new Scanner(file);  
        scan.useDelimiter("__________\n");  
        String record = scan.next();

但它将某些字节更改为其他字节。例如,记录字符串应该是十六进制值 80 的字节,Scanner 似乎将其转换为十六进制值 ac 的字节。如何从文件中输入记录而不需要像这样进行字节切换?

I am using the Scanner utility in Java to input data from a file like so:

        File file = new File("mazes.txt");
        Scanner scan = new Scanner(file);  
        scan.useDelimiter("__________\n");  
        String record = scan.next();

but it is changing certain bytes to other bytes. For example, where the record string should be a byte with hexadecimal value 80, Scanner seems to turn this into a byte with a hex value of ac. How can I input records from the file without any switching of the bytes like this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

往日 2025-01-15 07:26:27

从构造函数的文档中:

使用底层将文件中的字节转换为字符
平台的默认字符集。

如果您的文件有其他编码,则必须使用 (eg):

 Scanner scan = new Scanner(file,"UTF-8");  

 Scanner scan = new Scanner(file,"ISO8859-1");

等。

From the documentation of the constructor:

Bytes from the file are converted into characters using the underlying
platform's default charset.

If your file has another encoding, you must use (e.g.):

 Scanner scan = new Scanner(file,"UTF-8");  

or

 Scanner scan = new Scanner(file,"ISO8859-1");

etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文