2015-05-09 6 views
0

У меня есть файл на моем компьютере, у которого есть расширение .file, я хочу прочитать его 9 символов на 9 символов. Я знаю, что я могу читать файл по этому коду, но что мне делать, когда мой файл не .txt? Поддерживает ли java для чтения .file с этим кодом?Прочитать файл в java

   InputStream is = null; 
       InputStreamReader isr = null; 
       BufferedReader br = null; 
       is = new FileInputStream("c:/test.txt"); 
       // create new input stream reader 
       isr = new InputStreamReader(is); 
       // create new buffered reader 
       br = new BufferedReader(isr); 
       // creates buffer 
       char[] cbuf = new char[is.available()]; 
       for (int i = 0; i < 90000000; i += 9) { 
       // reads characters to buffer, offset i, len 9 
       br.read(cbuf, i, 9);} 

ответ

1

Расширение файла абсолютно не имеет значения. Расширения, такие как .txt, представляют собой простые соглашения, которые помогут вашей операционной системе выбрать нужную программу при ее открытии.

Таким образом, вы можете хранить текст в любом файле (.txt, .file, .foobar, если вы так склонны ...), при условии, вы знаете, какие данные он содержит, и читать его в соответствии с вашей программой.

Так что да, Java может читать файлы .file, и ваш код будет работать нормально, если этот файл содержит текст.

0

делает Java поддержки читать .file s с этим кодом?

Нет, поскольку c:/test.txt является жестким кодом. Если бы это было не так, это поддержало бы это.

+0

Ответ: «Да». См. Другие ответы. – user1803551

+0

@ user1803551 и вот что я сказал. – Zarathustra

0

Да, это возможно, если вы пишете is = new FileInputStream("c:/test.file");

0

Да, он читает любой файл, вы даете ему то же самое. Вы можете передать любой путь файла с любым расширением к конструктору FileInputStream.

0

Любой может прочитать любой файл, который вы хотите, так как файл представляет собой всего лишь последовательность байтов. Расширение сообщает вам, в каком формате следует читать байты, поэтому, когда у нас есть файл .txt, мы знаем, что это файл с последовательностями символов.

Если у вас есть формат файла .file, мы знаем, что он должен быть (по вашему желанию) набором символов 9x9. Таким образом мы знаем, что читать и делать.

Поскольку формат .file это символы, я бы сказал, да, вы можете прочитать, что с вашим кодом, например, с этим:

public String[] readFileFormat (final File file) throws IOException { 
    if (file.exists()) { 
     final String[] lines = new String[9]; 
     final BufferedReader reader = new BufferedReader (new FileReader(file)); 
     for (int i = 0; i < lines.length; i++) { 
      lines[i] = reader.readLine(); 
      if (lines[i] == null || lines[i].isEmpty() || lines[i].length() < 9) 
       throw new RuntimeException ("Line is empty when it should be filled!"); 
      else if (lines[i].length() > 9) 
       throw new RuntimeException ("Line does not have exactly 9 characters!"); 
     } 
     reader.close(); 
     return lines; 
    } 
    return null; 
} 
Смежные вопросы