“已解决”最终写有空白的书面文件

时间:2012-02-28 17:26:38

标签: android

我正在创建一个管理文本文件的类。我有一个写入的方法和另一个读取我的文件的方法:

public static void writeFiles(Context context, String nomFichier, String content, char mode) {

    FileOutputStream fOut = null; 
    OutputStreamWriter osw = null; 

    try {
        if (mode == 'd') {
            context.deleteFile(nomFichier);
        } else {        
            fOut = context.openFileOutput(nomFichier, Context.MODE_APPEND);       
            osw = new OutputStreamWriter(fOut); 
            osw.write(content); 
            osw.flush();
        }
    } catch (Exception e) {       
        Toast.makeText(context, "Message not saved",Toast.LENGTH_SHORT).show(); 
    } finally { 
        try { 
            osw.close(); 
            fOut.close(); 
        } catch (IOException e) { 
            Toast.makeText(context, "Message not saved",Toast.LENGTH_SHORT).show(); 
        } 
    } 
}

当我创建一个文件时,它会填充几个空行。我想将我的文件内容设置为EditText,所以我不想要空白。 如何创建没有空格的文件?

Thx,korax。

编辑:

我使用了由appserv和acj建议的trim(),但是在read函数而不是write函数中。它很好,对你来说!

public static String readFile(Context context, String fileName) {

    FileInputStream fIn = null; 
    InputStreamReader isr = null; 
    char[] inputBuffer = new char[255]; 
    String content = null;

    try { 
        fIn = context.openFileInput(fileName);       
        isr = new InputStreamReader(fIn); 
        isr.read(inputBuffer); 
        content = new String(inputBuffer);
    } catch (Exception e) {       
        //Toast.makeText(context, "Message not read",Toast.LENGTH_SHORT).show(); 
    } 
    finally { 
        try {               
            isr.close(); 
            fIn.close(); 
        } catch (IOException e) { 
            //Toast.makeText(context, "Message not read",Toast.LENGTH_SHORT).show(); 
        } 
    }
    return content.trim();
}

1 个答案:

答案 0 :(得分:0)

如果您使用文本编辑器创建文件,编辑器可能会添加一些空行来填充文件大小。您可以在没有MODE_APPEND标志的情况下调用openFileOutput来以编程方式创建新(空)文件,从而避免使用文本编辑器。

否则,appserv建议使用trim()应该可以很好地清理字符串。