当前位置: 首页 > 知识库问答 >
问题:

从同一个java文件中读取字符串和字节

储承
2023-03-14

我正在寻找一种在读取字节(作为字节[])和从文件中读取字符串行之间切换的方法。我知道字节[]可以通过FileInputStream从文件中获取,字符串可以通过BufferedReader获取,但同时使用这两个字节是有问题的。我知道字节段有多长。当我写文件时,字符串编码可以保持不变。该文件类型是一个仍在开发中的自定义文件类型,因此我可以更改向其写入数据的方式。

我怎么能读取字符串和字节[]s从相同的文件在java?

共有3个答案

赵锐
2023-03-14

为什么不试试这个:

        BufferedReader bufferedReader = null;

        try {
            bufferedReader = new BufferedReader(new FileReader("testing.txt"));
            String line = bufferedReader.readLine();
            while(line != null){
                byte[] b = line.getBytes();
            }

        } finally {
            if(bufferedReader!=null){
                bufferedReader.close();
            }
        }

            FileInputStream in = null;
        BufferedReader bufferedReader = null;

        try {
            bufferedReader = new BufferedReader(new FileReader("xanadu.txt"));
            String line = bufferedReader.readLine();
            while(line != null){
                //read your line
            }
            in = new FileInputStream("xanadu.txt");
            int c;
            while ((c = in.read()) != -1) {
                //read your bytes (c)
            }


        } finally {
            if (in != null) {
                in.close();
            }
            if(bufferedReader!=null){
                bufferedReader.close();
            }
        }
方飞鸣
2023-03-14

使用BufferedReader读取文件String,然后使用String.getBytes()

隆飞宇
2023-03-14

读取为字节。当您读取了您知道应该是字符串的字节序列时,将这些字节放置在数组中,将数组放入ByteArrayInputStream中,并将其用作Reader的基础InputStream将字节作为字符,然后读取这些字符以产生一个String

有关此过程的后续部分,请参阅有关如何从InputStream创建字符串的相关SO问题。

 类似资料:
  • 我需要将对象保存在一个文件中。我使用GSON库。写入文件很容易,但是读取很复杂。我一个接一个地读取整个文件,但是这个解决方案效率很低。如何只读取一个JSON字符串?我不知道如何做得更好。请帮帮我。谢谢你

  • 假设我有一个文本文件,每行有一个数字代码和一个字符串标签: 我如何打印前面的非零数字和每行的前两个单词的总和?假设数字总是4位数,单词与数字之间用一个空格隔开。例如,我会得到: 我试图初始化这个,但我不知道从这里去哪里

  • 我正在创建一个程序,在那里我必须阅读特殊的文本文件。我在将文本从指定的单词读入另一个指定的单词(不包括这些单词)时遇到问题。使用扫描仪是解决这个问题的好方法吗?我的意思是: “文本1 课文2 课文3 文本4 文本5“ 我想从它得到字符串与"文本2文本3文本4"。 我尝试使用useDlimeter,但我不知道如何将其应用于这种情况。我创建了一个允许我跳过行的方法,但从长远来看,这不是一个好的解决方案

  • 《 cin.getline()》一节中,详细介绍了如何使用 getline() 方法从 cin 输入流缓冲区中读取一行字符串。在此基础上,getline() 方法还适用于读取指定文件中的一行数据,本节就给大家做详细的讲解。 我们知道,getline() 方法定义在 istream 类中,而 fstream 和 ifstream 类继承自 istream 类,因此 fstream 和 ifstrea

  • 问题内容: 我需要在文本文件中读写数据,但是还无法弄清楚该怎么做。 我在Swift的iBook中找到了此示例代码,但我仍然不知道如何写入或读取数据。 问题答案: 为了进行读写,您应该使用可写的位置,例如documents目录。以下代码显示了如何读写简单的字符串。您可以在操场上进行测试。 雨燕3.x-5.x 斯威夫特2.2 斯威夫特1.x

  • 我在尝试从txt文件中读取字符串和Double时遇到了一些麻烦。这是我的txt文件: 下面是我用来阅读它们的代码: 每当我运行此代码时,线程“main”java.util.InputMisMatchException中会出现