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

OutputStreamWriter只向文件中写入一项

贺海
2023-03-14
public static void copy_TimeZonestoFile(ArrayList<AL_TimeZone> timezones, Context context){

    try {

        FileOutputStream fileOutputStream = context.openFileOutput("TimeZones.dat",Context.MODE_PRIVATE);
        OutputStreamWriter writerFile = new OutputStreamWriter(fileOutputStream);

        int TZsize = timezones.size();

        for (int i = 0; i < TZsize; i++) {
            writerFile.write(
                    timezones.get(i).getRegion() + "," +
                            timezones.get(i).getOffset() + "\n"
            );
        }

        writerFile.flush();
        writerFile.close();

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
        public void run() {


            if (fileTimeZones.exists()){

                System.out.println("Timezone file exists. Loading.. File size is : " + fileTimeZones.length());
                try{

                    savedTimeZoneList.clear();

                    BufferedReader reader = new BufferedReader(new InputStreamReader(openFileInput("TimeZones.dat")));
                    String lineFromTZfile = reader.readLine();
                    while (lineFromTZfile != null ){
                        StringTokenizer token = new StringTokenizer(lineFromTZfile,",");
                        AL_TimeZone timeZone = new AL_TimeZone(token.nextToken(),
                                token.nextToken());

                        savedTimeZoneList.add(timeZone);
                    }


                } catch (FileNotFoundException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } catch (Exception e){
                    e.printStackTrace();
                }
            }
        }

===================trace================================

I/System.out: Timezone file exists. Loading.. File size is : 12373
W/System.err: java.util.NoSuchElementException
    at java.util.StringTokenizer.nextToken(StringTokenizer.java:349)
    at com.cryptotrac.trackerService$1R_loadTimeZones.run(trackerService.java:215)
W/System.err:     at java.lang.Thread.run(Thread.java:764)

共有1个答案

谭池暝
2023-03-14

可能有多个错误,因为我实际上希望您会遇到无限循环,因为您只读取文件的第一行,然后重复解析它。

您应该检查以下内容:

  • 确保正确写入文件。写好的文件到底包含什么?每行末尾是否有新行?
  • 确保写入的数据(在本例中为“region”和“offset”)从不包含逗号,否则解析将中断。我认为“region”很有可能包含逗号。
  • 当读取文件时,您总是需要假定文件(格式)已被破坏。例如,假设readline将返回一个空行或包含多个或少个逗号的内容。
 类似资料:
  • 我是Flume的新手。我有一个大的 CSV 文本文件,其中包含记录,每个记录的长度约为 50 个字符,CR-LF 终止了这些行。我想使用Flume将这些数据摄取到HDFS中。结果是只有文件的一行被写入HDFS(如果该线索有帮助,它是文件的第二行)。 我在输出中没有看到任何错误。谢谢。详情如下。 这是我的执行命令: Flume-ng代理--conf--conf文件example.conf--name

  • 当执行以下PL/SQL代码时,CLOB将作为文本文件写入目录。但是,我认为整个CLOB没有输出,因为当我试图解码时,图像被破坏了(只有图像的上部会出现)。我在一个小图像(11K)上运行它,它工作得很好。我还监测到l_pos正在正确地增加,所以它似乎正在读取CLOB(32KB)的每个块,我做错了什么? 我使用的是Oracle11g Express Edition(XE)和SQL Developer。

  • 本文向大家介绍PowerShell Out-File向只读文件写入内容的方法,包括了PowerShell Out-File向只读文件写入内容的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍使用PowerShell来写文件时,如果遇到只读文件,如何强制覆盖它。 D:\2.txt是一个只读文件,如果我运行一条Out-File输出语句,将得到报错提示:    这里说的“对路径“D:\2.txt”

  • 我在Windows10和vscode上使用Python 3.8.1。

  • 我想使用OutputStreamWriter将数据追加到XML文件中,但结果如下所示 如何实现正确的格式

  • 问题内容: 我一直在尝试找到一种使用Node.js时写入文件的方法,但是没有成功。我怎样才能做到这一点? 问题答案: 文件系统API中有很多详细信息。最常见的方法是: