private static InputStream getInputStreamForFile(File startingDir) {
		File selectedFile = getFileFromUser(startingDir);

		if (selectedFile == null) {
			return null;
		}

		InputStream inputStream = null;

		try {
			inputStream = new BufferedInputStream(new FileInputStream(selectedFile));
		}
		catch (FileNotFoundException fnfe) {
			// show warning and prompt again for the file chooser
			Msg.showError(log, null, "File Not Found",
				"Cannot find file " + selectedFile.getAbsolutePath(), fnfe);

			return getInputStreamForFile(selectedFile);
		}

		return inputStream;
	}
Parses the given text into a KeyStroke.  This method relies upon
{@link KeyStroke#getKeyStroke(String)} for parsing.  Before making that call, this method
will perform fixup on the given text for added flexibility.  For example, the given
text may contain spaces or dashes as the separators between parts in the string.  Also,
the text is converted such that it is not case-sensitive.  So, the following example
formats are allowed:
<pre>
   Alt-F
   alt p
   Ctrl-Alt-Z
   ctrl Z
</pre>

<p><b>Note:</b> The returned keystroke will always correspond to a {@code pressed} event,
regardless of the value passed in (pressed, typed or released).

@param keyStroke the key stroke
@return the new key stroke (as returned by  {@link KeyStroke#getKeyStroke(String)}
Ghidra/Framework/Docking/src/main/java/docking/actions/KeyBindingUtils.java